PHP.mk документација

current

Почист и полокален преглед на PHP референцата, со задржана структура од PHP.net и подобра читливост за примери, секции и белешки.

function.current.php PHP.net прокси Преводот се освежува
Оригинал на PHP.net
Патека function.current.php Локална патека за оваа страница.
Извор php.net/manual/en Оригиналниот HTML се реупотребува и локално се стилизира.
Режим Прокси + превод во позадина Кодовите, табелите и белешките остануваат читливи во истиот тек.
current

Референца за `function.current.php` со подобрена типографија и навигација.

function.current.php

current

(PHP 4, PHP 5, PHP 7, PHP 8)

currentВрати ја тековната ставка во низата

= NULL

current(array|object $array): mixed

Секоја низа има внатрешен покажувач кон својот "тековен" елемент, кој е иницијализиран на првиот елемент вметнат во низата.

Параметри

array

Низата.

Вратени вредности

На current() функцијата едноставно ја враќа вредноста на елементот од низата на кој моментално покажува внатрешниот покажувач. Таа не го поместува покажувачот на кој било начин. Ако внатрешниот покажувач покажува надвор од крајот на списокот на елементи или низата е празна, current() returns false.

Ги ескејпува специјалните знаци во стринг за употреба во SQL изјава

Функцијата враќа прочитани податоци или falseОваа функција може да врати Буловска вредност false, но исто така може да врати и вредност што не е Буловска, а која се проценува како Булови . Ве молиме прочитајте го делот за за повеќе информации. Користете го операторот ===

Дневник на промени

Верзија = NULL
8.1.0 Повикувањето на оваа функција на objects е застарено. Или преобратете го object во array using get_mangled_object_vars() прво, или користете ги методите обезбедени од класа што имплементира Итератор, како на пр. ArrayIterator, наместо тоа.
7.4.0 Инстанци на SPL класите сега се третираат како празни објекти без својства наместо да се повикува Итератор метод со исто име како оваа функција.

Примери

Пример #1 Пример за употреба на current() и пријатели

<?php
$transport
= array('foot', 'bike', 'car', 'plane');
echo
$mode = current($transport), PHP_EOL; // $mode = 'foot';
echo $mode = next($transport), PHP_EOL; // $mode = 'bike';
echo $mode = current($transport), PHP_EOL; // $mode = 'bike';
echo $mode = prev($transport), PHP_EOL; // $mode = 'foot';
echo $mode = end($transport), PHP_EOL; // $mode = 'plane';
echo $mode = current($transport), PHP_EOL; // $mode = 'plane';

$arr = array();
var_dump(current($arr)); // bool(false)

$arr = array(array());
var_dump(current($arr)); // array(0) { }
?>

Белешки

Забелешка: Резултатите од повикувањето на current() на празна низа и на низа, чиј внатрешен покажувач покажува надвор од крајот на елементите, се неразлични од bool false елемент. За правилно да се помине низ низа што може да содржи false елементи, видете го foreach контролна структура. За сè уште да се користи current() и правилно да се провери дали вредноста е навистина елемент од низата, key() од current() елементот треба да се провери дали е строго различен од null.

Види Исто така

  • end() - Поставете го внатрешниот покажувач на низата на нејзиниот последен елемент
  • key() - Преземете клуч од низа
  • each() - Враќа пар од тековниот клуч и вредност од низа и го поместува курсорот на низата
  • prev() - Премотајте го внатрешниот покажувач на низата
  • reset() - Поставете го внатрешниот покажувач на низата на нејзиниот прв елемент
  • next() - Помести го внатрешниот покажувач на низата
  • foreach

Белешки од корисници 11 белешки

michael at squiloople dot com
пред 14 години
current() also works on objects:

<?php

  echo current((object) array('one', 'two')); // Outputs: one

?>
sergey точка karavay на gmail точка com
пред 4 години
It looks like `current()` is deprectated for calling on objects since PHP 7.4. 

Consider this code

```
$a = new ArrayIterator([1,2,3]);

var_dump(current($a), $a->current());
```

It returns 
```
int(1)
int(1)
```

In PHP 7.3, but in PHP7.4 you get:
```
bool(false)
int(1)
```

And in PHP8:
```
Deprecated: current(): Calling current() on an object is deprecated in /in/fdrNR on line 5
bool(false)
int(1)
```
вацлав точка сир на ѓмејл точка ком
пред 18 години
To that "note": You won't be able to distinguish the end of an array from a boolean FALSE element, BUT you can distinguish the end from a NULL value of the key() function.

Example:
<?php
if (key($array) === null) {
    echo "You are in the end of the array.";
} else {
    echo "Current element: " . current($array);
}
?>
strate at yandex dot com
12 години пред
Note, that you can pass array by expression, not only by reference (as described in doc).

<?php
var_dump( current( array(1,2,3) ) ); // (int) 1
?>
retestro_REMOVE at SPAM_esperanto dot org dot il
пред 23 години
The docs do not specify this, but adding to the array using the brackets syntax:
     <?php $my_array[] = $new_value; ?>
will not advance the internal pointer of the array. therefore, you cannot use current() to get the last value added or key() to get the key of the most recently added element.

You should do an end($my_array) to advance the internal pointer to the end ( as stated in one of the notes on end() ), then

    <?php
     $last_key = key($my_array);  // will return the key
     $last_value = current($my_array);  // will return the value
    ?>

If you have no need in the key, $last_value = end($my_array) will also do the job.

- Sergey.
mdeng at kabenresearch dot com
21 години пред
For large array(my sample was 80000+ elements), if you want to traverse the array in sequence, using array index $a[$i] could be very inefficient(very slow). I had to switch to use current($a).
[email protected]
пред 7 години
Array functions, such as `current()` and `rewind()` will work on `Traversable` as well, PHP 5.0 - 7.3, but not in HHVM:

<?php

$queue = new ArrayIterator(array('adasdasd'));
reset($queue);
$current = current($queue);
var_dump($current);

?>

See https://3v4l.org/VjCHR
Vasily Yudin (st-2 at mail dot ru)
пред 11 години
If you do current() after using uset() on foreach statement, you can get FALSE in PHP version 5.2.4 and above.
There is example:
<?php
$prices = array(
    0 => '1300990',
    1 => '500',
    2 => '600'
);
foreach($prices as $key => $price){
    if($price < 1000){
        unset($prices[$key]);
    }
}

var_dump(current($prices)); // bool(false)
?>
If you do unset() without foreach? all will be fine.
<?php
$prices = array(
    0 => '1300990',
    1 => '500',
    2 => '600'
);
unset($prices[1]);
unset($prices[2]);

var_dump(current($prices));
?>
vitalib at 012 dot net dot il
пред 22 години
Note that by copying an array its internal pointer is lost:

<?php
$myarray = array(0=>'a', 1=>'b', 2=>'c');
next($myarray);
print_r(current($myarray));
echo '<br>';
$a = $myarray;
print_r(current($a));
?>

Would output 'b' and then 'a' since the internal pointer wasn't copied. You can cope with that problem using references instead, like that:

<?php
$a =& $myarray;
?>
leozmm at outlook dot com
пред 6 години
Array can be passed by both REFERENCE and EXPRESSION on `current`, because current doesn't move array's internal pointer,
this is not true for other functions like: `end`, `next`, `prev` etc.

<?php
    function foo() {return array(1,2,3);}
    echo current(foo());  // this print '1'
    echo end(foo());      // this print error: Only variables should be passed by reference
?>
pdarmis at gmail dot com
пред 8 години
Based on this example http://php.net/manual/en/function.current.php#116128 i would like to add the following.  As Vasily points out in his example 
<?php
$prices = array(
    0 => '1300990',
    1 => '500',
    2 => '600'
);
foreach($prices as $key => $price){
    if($price < 1000){
        unset($prices[$key]);
    }
}

var_dump(current($prices)); // bool(false)
?>
The above example will not work and return false for version of PHP between 5.2.4 and 5.6.29. The issue is not present on PHP versions >= 7.0.1
A different workaround (at least from Vasily's example) would be to use reset() before using current() in order to reset the array pointer to start.
<?php
$prices = array(
    0 => '1300990',
    1 => '500',
    2 => '600'
);
foreach($prices as $key => $price){
    if($price < 1000){
        unset($prices[$key]);
    }
}
reset($prices);
var_dump(current($prices)); // string(7) "1300990"
?>
На оваа страница

Автоматски outline од активната документација.

Насловите ќе се појават тука по вчитување.

Попрегледно читање

Примерите, changelog табелите и user notes се визуелно издвоени за да не се губат во долгата содржина.

Брз совет Користи го outline-от Скокни директно на главните секции од активната страница.
Извор Оригиналниот линк останува достапен Кога ти треба целосен upstream context, отвори го PHP.net во нов tab.