<?php
include_once $_SERVER['DOCUMENT_ROOT'] . '/include/shared-manual.inc';
$TOC = array();
$TOC_DEPRECATED = array();
$PARENTS = array();
include_once dirname(__FILE__) ."/toc/class.yac.inc";
$setup = array (
  'home' => 
  array (
    0 => 'index.php',
    1 => 'PHP Manual',
  ),
  'head' => 
  array (
    0 => 'UTF-8',
    1 => 'en',
  ),
  'this' => 
  array (
    0 => 'yac.get.php',
    1 => 'Yac::get',
    2 => 'Retrieve values from cache',
  ),
  'up' => 
  array (
    0 => 'class.yac.php',
    1 => 'Yac',
  ),
  'prev' => 
  array (
    0 => 'yac.flush.php',
    1 => 'Yac::flush',
  ),
  'next' => 
  array (
    0 => 'yac.getter.php',
    1 => 'Yac::__get',
  ),
  'alternatives' => 
  array (
  ),
  'source' => 
  array (
    'lang' => 'en',
    'path' => 'reference/yac/yac/get.xml',
  ),
  'history' => 
  array (
  ),
);
$setup["toc"] = $TOC;
$setup["toc_deprecated"] = $TOC_DEPRECATED;
$setup["parents"] = $PARENTS;
manual_setup($setup);

contributors($setup);

?>
<div id="yac.get" class="refentry">
 <div class="refnamediv">
  <h1 class="refname">Yac::get</h1>
  <p class="verinfo">(PECL yac &gt;= 1.0.0)</p><p class="refpurpose"><span class="refname">Yac::get</span> &mdash; <span class="dc-title">Retrieve values from cache</span></p>

 </div>

 <div class="refsect1 description" id="refsect1-yac.get-description">
  <h3 class="title">Description</h3>
  <div class="methodsynopsis dc-description">
   <span class="modifier">public</span> <span class="modifier">function</span> <span class="methodname"><strong>Yac::get</strong></span>(<span class="methodparam"><span class="type"><span class="type"><a href="language.types.string.php" class="type string">string</a></span>|<span class="type"><a href="language.types.array.php" class="type array">array</a></span></span> <code class="parameter">$key</code></span>, <span class="methodparam"><span class="type"><a href="language.types.mixed.php" class="type mixed">mixed</a></span> <code class="parameter">$default</code><span class="initializer"> = <strong><code><a href="reserved.constants.php#constant.null">null</a></code></strong></span></span>): <span class="type"><a href="language.types.mixed.php" class="type mixed">mixed</a></span></div>

  <p class="simpara">
    Retrieve values from cache
  </p>
 </div>


 <div class="refsect1 parameters" id="refsect1-yac.get-parameters">
  <h3 class="title">Parameters</h3>
  <dl>
   
    <dt><code class="parameter">key</code></dt>
    <dd>
     <p class="simpara">
      A <span class="type"><a href="language.types.string.php" class="type string">string</a></span> key, or an <span class="type"><a href="language.types.array.php" class="type array">array</a></span> of keys.
     </p>
    </dd>
   
   
    <dt><code class="parameter">default</code></dt>
    <dd>
     <p class="simpara">
      The value to return when the requested key (or keys) is not
      present in the cache, available as of yac 2.4.0. When omitted, a
      miss returns <strong><code><a href="reserved.constants.php#constant.false">false</a></code></strong>.
     </p>
     <blockquote class="note"><p><strong class="note">Note</strong>: 
      <p class="simpara">
       Before yac 2.4.0, this argument slot held a by-reference
       <code class="literal">$cas</code> token rather than a default value. Code
       that passed or relied on that token must be updated when
       upgrading to 2.4.0.
      </p>
     </p></blockquote>
    </dd>
   
  </dl>
 </div>


 <div class="refsect1 returnvalues" id="refsect1-yac.get-returnvalues">
  <h3 class="title">Return Values</h3>
  <p class="simpara">
   For a <span class="type"><a href="language.types.string.php" class="type string">string</a></span> key, returns the cached value on a hit,
   otherwise the <code class="parameter">default</code> (or <strong><code><a href="reserved.constants.php#constant.false">false</a></code></strong> when no default
   was given).
  </p>
  <p class="simpara">
   For an <span class="type"><a href="language.types.array.php" class="type array">array</a></span> of keys, returns an array containing the
   found values indexed by their keys. Keys that are not present in
   the cache are omitted from the result as of yac 2.4.0, or filled
   with the <code class="parameter">default</code> when one was given; before
   2.4.0, a <strong><code><a href="reserved.constants.php#constant.false">false</a></code></strong> placeholder was inserted for every missing key.
  </p>
 </div>



 <div class="refsect1 examples" id="refsect1-yac.get-examples">
  <h3 class="title">Examples</h3>
  <div class="example" id="example-1">
   <p><strong>Example #1 <span class="methodname"><strong>Yac::get()</strong></span> example</strong></p>
   <div class="example-contents">
<div class="phpcode"><pre><code style="color: #000000"><span style="color: #0000BB">&lt;?php
$yac </span><span style="color: #007700">= new </span><span style="color: #0000BB">Yac</span><span style="color: #007700">();

</span><span style="color: #0000BB">$yac</span><span style="color: #007700">-&gt;</span><span style="color: #0000BB">set</span><span style="color: #007700">(</span><span style="color: #DD0000">"foo"</span><span style="color: #007700">, </span><span style="color: #DD0000">"bar"</span><span style="color: #007700">);
</span><span style="color: #0000BB">var_dump</span><span style="color: #007700">(</span><span style="color: #0000BB">$yac</span><span style="color: #007700">-&gt;</span><span style="color: #0000BB">get</span><span style="color: #007700">(</span><span style="color: #DD0000">"foo"</span><span style="color: #007700">));                 </span><span style="color: #FF8000">// string(3) "bar"
</span><span style="color: #0000BB">var_dump</span><span style="color: #007700">(</span><span style="color: #0000BB">$yac</span><span style="color: #007700">-&gt;</span><span style="color: #0000BB">get</span><span style="color: #007700">(</span><span style="color: #DD0000">"missing"</span><span style="color: #007700">));             </span><span style="color: #FF8000">// bool(false): a miss
</span><span style="color: #0000BB">?&gt;</span></code></pre></div>
   </div>

  </div>
  <div class="example" id="example-2">
   <p><strong>Example #2 Telling a stored false apart from a miss</strong></p>
   <div class="example-contents">
<div class="phpcode"><pre><code style="color: #000000"><span style="color: #0000BB">&lt;?php
$yac </span><span style="color: #007700">= new </span><span style="color: #0000BB">Yac</span><span style="color: #007700">();

</span><span style="color: #FF8000">// a miss and a stored false are indistinguishable without a default;
// a sentinel default (available as of yac 2.4.0) tells them apart
</span><span style="color: #0000BB">$yac</span><span style="color: #007700">-&gt;</span><span style="color: #0000BB">set</span><span style="color: #007700">(</span><span style="color: #DD0000">"flag"</span><span style="color: #007700">, </span><span style="color: #0000BB">false</span><span style="color: #007700">);
</span><span style="color: #0000BB">var_dump</span><span style="color: #007700">(</span><span style="color: #0000BB">$yac</span><span style="color: #007700">-&gt;</span><span style="color: #0000BB">get</span><span style="color: #007700">(</span><span style="color: #DD0000">"flag"</span><span style="color: #007700">));                </span><span style="color: #FF8000">// bool(false): the stored value
</span><span style="color: #0000BB">var_dump</span><span style="color: #007700">(</span><span style="color: #0000BB">$yac</span><span style="color: #007700">-&gt;</span><span style="color: #0000BB">get</span><span style="color: #007700">(</span><span style="color: #DD0000">"missing"</span><span style="color: #007700">, </span><span style="color: #0000BB">false</span><span style="color: #007700">));      </span><span style="color: #FF8000">// bool(false): a miss, same shape
</span><span style="color: #0000BB">var_dump</span><span style="color: #007700">(</span><span style="color: #0000BB">$yac</span><span style="color: #007700">-&gt;</span><span style="color: #0000BB">get</span><span style="color: #007700">(</span><span style="color: #DD0000">"flag"</span><span style="color: #007700">, </span><span style="color: #DD0000">"__NONE__"</span><span style="color: #007700">));    </span><span style="color: #FF8000">// bool(false): the stored value
</span><span style="color: #0000BB">var_dump</span><span style="color: #007700">(</span><span style="color: #0000BB">$yac</span><span style="color: #007700">-&gt;</span><span style="color: #0000BB">get</span><span style="color: #007700">(</span><span style="color: #DD0000">"missing"</span><span style="color: #007700">, </span><span style="color: #DD0000">"__NONE__"</span><span style="color: #007700">)); </span><span style="color: #FF8000">// string(8) "__NONE__": a miss
</span><span style="color: #0000BB">?&gt;</span></code></pre></div>
   </div>

  </div>
  <div class="example" id="example-3">
   <p><strong>Example #3 Getting multiple keys at once</strong></p>
   <div class="example-contents">
<div class="phpcode"><pre><code style="color: #000000"><span style="color: #0000BB">&lt;?php
$yac </span><span style="color: #007700">= new </span><span style="color: #0000BB">Yac</span><span style="color: #007700">();

</span><span style="color: #0000BB">$yac</span><span style="color: #007700">-&gt;</span><span style="color: #0000BB">set</span><span style="color: #007700">(</span><span style="color: #DD0000">"foo"</span><span style="color: #007700">, </span><span style="color: #DD0000">"bar"</span><span style="color: #007700">);
</span><span style="color: #0000BB">$yac</span><span style="color: #007700">-&gt;</span><span style="color: #0000BB">set</span><span style="color: #007700">(</span><span style="color: #DD0000">"foo2"</span><span style="color: #007700">, </span><span style="color: #DD0000">"bar2"</span><span style="color: #007700">);

</span><span style="color: #FF8000">// with an array of keys, only the found keys are present in the result
</span><span style="color: #0000BB">var_dump</span><span style="color: #007700">(</span><span style="color: #0000BB">$yac</span><span style="color: #007700">-&gt;</span><span style="color: #0000BB">get</span><span style="color: #007700">(array(</span><span style="color: #DD0000">"foo"</span><span style="color: #007700">, </span><span style="color: #DD0000">"foo2"</span><span style="color: #007700">, </span><span style="color: #DD0000">"missing"</span><span style="color: #007700">)));
</span><span style="color: #FF8000">// array(2) { ["foo"]=&gt; string(3) "bar" ["foo2"]=&gt; string(4) "bar2" }
</span><span style="color: #0000BB">?&gt;</span></code></pre></div>
   </div>

  </div>
 </div>


 <div class="refsect1 seealso" id="refsect1-yac.get-seealso">
  <h3 class="title">See Also</h3>
  <p class="para">
   <ul class="simplelist">
    <li><span class="methodname"><a href="yac.set.php" class="methodname" rel="rdfs-seeAlso">Yac::set()</a> - Store a value into the cache</span></li>
    <li><span class="methodname"><a href="yac.getter.php" class="methodname" rel="rdfs-seeAlso">Yac::__get()</a> - Retrieve a value using property syntax</span></li>
   </ul>
  </p>
 </div>


</div><?php manual_footer($setup); ?>