<?php
function sta() {
static $i = 0;
$i++;
return $i;
}
sta();
sta();
sta();
sta();
echo $i;
?>
Хочу чтобы переменная возвращала количество вызовов функции
Мне кажется вы пытаетесь использовать инструмент не по назначению. Хотите иметь возможность получать доступ к подобному счетчику извне - используйте глобальную переменную или объекты
Например такой костыль с глобальной переменной:
function sta() {
static $i = 0;
if ($i == 0) {
$GLOBALS['sta_i'] = &$i;
}
$i++;
return $i;
}
sta();
sta();
sta();
sta();
echo $sta_i;
...или объектом:
class StaClass {
private $i = 0;
public function sta() {
$this->i++;
return $this->i;
}
public function getCount() {
return $this->i;
}
}
$o = new StaClass();
$o->sta();
$o->sta();
$o->sta();
$o->sta();
echo $o->getCount();
...еще вариант со ссылками, но без засорения глобальной области
function &sta() {
static $i = 0;
$i++;
return $i;
}
$sta_i = &sta();
sta();
sta();
sta();
echo $sta_i;
Вы возвращаете переменную $i
в конце функции, достаточно просто ответ функции в переменную загонять и посмотреть, а так вы к ней не обратитесь напрямую.
<?php
function sta() {
static $i = 0;
$i++;
return $i;
}
sta();
sta();
sta();
$count = sta();
echo $count; // Выведет 4
Но это тоже такой себе вариант.
Кофе для программистов: как напиток влияет на продуктивность кодеров?
Рекламные вывески: как привлечь внимание и увеличить продажи
Стратегії та тренди в SMM - Технології, що формують майбутнє сьогодні
Выделенный сервер, что это, для чего нужен и какие характеристики важны?
Современные решения для бизнеса: как облачные и виртуальные технологии меняют рынок
При посылке UDP пакета через socket требуется изменить внутренние параметры Version Type Pap/Chap Rsv UserIp AttrNum
Здравствуйте, как правильно отследить изменение статуса checked input:radio и если отмечен, то брать значение соответствующего ему select (платежный...