<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"> <html> <head> <meta http-equiv="content-type" content="text/html; charset=UTF-8"> <title>Return the current element in an array</title> </head> <body><div class="manualnavbar" style="text-align: center;"> <div class="prev" style="text-align: left; float: left;"><a href="function.count.html">count</a></div> <div class="next" style="text-align: right; float: right;"><a href="function.each.html">each</a></div> <div class="up"><a href="ref.array.html">Array Functions</a></div> <div class="home"><a href="index.html">PHP Manual</a></div> </div><hr /><div id="function.current" class="refentry"> <div class="refnamediv"> <h1 class="refname">current</h1> <p class="verinfo">(PHP 4, PHP 5, PHP 7)</p><p class="refpurpose"><span class="refname">current</span> — <span class="dc-title">Return the current element in an array</span></p> </div> <div class="refsect1 description" id="refsect1-function.current-description"> <h3 class="title">Description</h3> <div class="methodsynopsis dc-description"> <span class="type"><a href="language.pseudo-types.html#language.types.mixed" class="type mixed">mixed</a></span> <span class="methodname"><strong>current</strong></span> ( <span class="methodparam"><span class="type">array</span> <code class="parameter">$array</code></span> )</div> <p class="para rdfs-comment"> Every array has an internal pointer to its "current" element, which is initialized to the first element inserted into the array. </p> </div> <div class="refsect1 parameters" id="refsect1-function.current-parameters"> <h3 class="title">Parameters</h3> <p class="para"> <dl> <dt> <code class="parameter">array</code></dt> <dd> <p class="para"> The array. </p> </dd> </dl> </p> </div> <div class="refsect1 returnvalues" id="refsect1-function.current-returnvalues"> <h3 class="title">Return Values</h3> <p class="para"> The <span class="function"><strong>current()</strong></span> function simply returns the value of the array element that's currently being pointed to by the internal pointer. It does not move the pointer in any way. If the internal pointer points beyond the end of the elements list or the array is empty, <span class="function"><strong>current()</strong></span> returns <strong><code>FALSE</code></strong>. </p> <div class="warning"><strong class="warning">Warning</strong><p class="simpara">This function may return Boolean <strong><code>FALSE</code></strong>, but may also return a non-Boolean value which evaluates to <strong><code>FALSE</code></strong>. Please read the section on <a href="language.types.boolean.html" class="link">Booleans</a> for more information. Use <a href="language.operators.comparison.html" class="link">the === operator</a> for testing the return value of this function.</p></div> </div> <div class="refsect1 changelog" id="refsect1-function.current-changelog"> <h3 class="title">Changelog</h3> <p class="para"> <table class="doctable informaltable"> <thead> <tr> <th>Version</th> <th>Description</th> </tr> </thead> <tbody class="tbody"> <tr> <td>7.0.0</td> <td> <code class="parameter">array</code> is now always passed by value. Prior to this version, it was passed by reference if possible, and by value otherwise. </td> </tr> </tbody> </table> </p> </div> <div class="refsect1 examples" id="refsect1-function.current-examples"> <h3 class="title">Examples</h3> <p class="para"> <div class="example" id="example-6224"> <p><strong>Example #1 Example use of <span class="function"><strong>current()</strong></span> and friends</strong></p> <div class="example-contents"> <div class="phpcode"><code><span style="color: #000000"> <span style="color: #0000BB"><?php<br />$transport </span><span style="color: #007700">= array(</span><span style="color: #DD0000">'foot'</span><span style="color: #007700">, </span><span style="color: #DD0000">'bike'</span><span style="color: #007700">, </span><span style="color: #DD0000">'car'</span><span style="color: #007700">, </span><span style="color: #DD0000">'plane'</span><span style="color: #007700">);<br /></span><span style="color: #0000BB">$mode </span><span style="color: #007700">= </span><span style="color: #0000BB">current</span><span style="color: #007700">(</span><span style="color: #0000BB">$transport</span><span style="color: #007700">); </span><span style="color: #FF8000">// $mode = 'foot';<br /></span><span style="color: #0000BB">$mode </span><span style="color: #007700">= </span><span style="color: #0000BB">next</span><span style="color: #007700">(</span><span style="color: #0000BB">$transport</span><span style="color: #007700">); </span><span style="color: #FF8000">// $mode = 'bike';<br /></span><span style="color: #0000BB">$mode </span><span style="color: #007700">= </span><span style="color: #0000BB">current</span><span style="color: #007700">(</span><span style="color: #0000BB">$transport</span><span style="color: #007700">); </span><span style="color: #FF8000">// $mode = 'bike';<br /></span><span style="color: #0000BB">$mode </span><span style="color: #007700">= </span><span style="color: #0000BB">prev</span><span style="color: #007700">(</span><span style="color: #0000BB">$transport</span><span style="color: #007700">); </span><span style="color: #FF8000">// $mode = 'foot';<br /></span><span style="color: #0000BB">$mode </span><span style="color: #007700">= </span><span style="color: #0000BB">end</span><span style="color: #007700">(</span><span style="color: #0000BB">$transport</span><span style="color: #007700">); </span><span style="color: #FF8000">// $mode = 'plane';<br /></span><span style="color: #0000BB">$mode </span><span style="color: #007700">= </span><span style="color: #0000BB">current</span><span style="color: #007700">(</span><span style="color: #0000BB">$transport</span><span style="color: #007700">); </span><span style="color: #FF8000">// $mode = 'plane';<br /><br /></span><span style="color: #0000BB">$arr </span><span style="color: #007700">= array();<br /></span><span style="color: #0000BB">var_dump</span><span style="color: #007700">(</span><span style="color: #0000BB">current</span><span style="color: #007700">(</span><span style="color: #0000BB">$arr</span><span style="color: #007700">)); </span><span style="color: #FF8000">// bool(false)<br /><br /></span><span style="color: #0000BB">$arr </span><span style="color: #007700">= array(array());<br /></span><span style="color: #0000BB">var_dump</span><span style="color: #007700">(</span><span style="color: #0000BB">current</span><span style="color: #007700">(</span><span style="color: #0000BB">$arr</span><span style="color: #007700">)); </span><span style="color: #FF8000">// array(0) { }<br /></span><span style="color: #0000BB">?></span> </span> </code></div> </div> </div> </p> </div> <div class="refsect1 notes" id="refsect1-function.current-notes"> <h3 class="title">Notes</h3> <blockquote class="note"><p><strong class="note">Note</strong>: <span class="simpara"> The end of an array and the result of calling <span class="function"><strong>current()</strong></span> on an empty array are indistinguishable from a <span class="type"><a href="language.types.boolean.html" class="type boolean">boolean</a></span> <strong><code>FALSE</code></strong> element. To properly traverse an array which may contain <strong><code>FALSE</code></strong> elements, see the <span class="function"><strong>foreach()</strong></span> function. </span> <span class="simpara"> To still use <span class="function"><strong>current()</strong></span> and properly check if the value is really an element of the array, the <span class="function"><a href="function.key.html" class="function">key()</a></span> of the <span class="function"><strong>current()</strong></span> element should be checked to be strictly different from <strong><code>NULL</code></strong>. </span> </p></blockquote> </div> <div class="refsect1 seealso" id="refsect1-function.current-seealso"> <h3 class="title">See Also</h3> <p class="para"> <ul class="simplelist"> <li class="member"><span class="function"><a href="function.end.html" class="function" rel="rdfs-seeAlso">end()</a> - Set the internal pointer of an array to its last element</span></li> <li class="member"><span class="function"><a href="function.key.html" class="function" rel="rdfs-seeAlso">key()</a> - Fetch a key from an array</span></li> <li class="member"><span class="function"><a href="function.each.html" class="function" rel="rdfs-seeAlso">each()</a> - Return the current key and value pair from an array and advance the array cursor</span></li> <li class="member"><span class="function"><a href="function.prev.html" class="function" rel="rdfs-seeAlso">prev()</a> - Rewind the internal array pointer</span></li> <li class="member"><span class="function"><a href="function.reset.html" class="function" rel="rdfs-seeAlso">reset()</a> - Set the internal pointer of an array to its first element</span></li> <li class="member"><span class="function"><a href="function.next.html" class="function" rel="rdfs-seeAlso">next()</a> - Advance the internal pointer of an array</span></li> </ul> </p> </div> </div><hr /><div class="manualnavbar" style="text-align: center;"> <div class="prev" style="text-align: left; float: left;"><a href="function.count.html">count</a></div> <div class="next" style="text-align: right; float: right;"><a href="function.each.html">each</a></div> <div class="up"><a href="ref.array.html">Array Functions</a></div> <div class="home"><a href="index.html">PHP Manual</a></div> </div></body></html>