Intereting Posts
Phpbrew на ubuntu – как сменить версию? PHP: данные двоичного изображения, проверка типа изображения Как получить массив определенного «ключа» в многомерном массиве без цикла Показывать только повторяющиеся элементы из массива Получить базовый каталог текущего скрипта Правый выравнивать текст в изображении с помощью imagettftext (), PHP Как я CURL www.google.com – он перенаправляет меня на .co.uk Помещение PHP-массива в MySQL с дополнительными столбцами Как включить XAMPP для локального использования функции mail () php, чтобы я мог локально тестировать скрипты mail (), не загружая их на свой сервер? Предоставляет ли PHP файл * .properties, как в Java? IntelliJ PHP отладчик не подключается Календарь, смещение перекрывающихся событий PHP file_exists или is_file не отвечает правильно в течение 10-20 с на NFS-файлах (EC2) Как я могу перенаправить ошибку 404 на пользовательскую страницу 404 с помощью Codeigniter? Как применить три типа условий в php

Назначить ссылку на статическую переменную

Я пытаюсь написать «умную» функцию поиска массива, которая будет помнить последний найденный элемент.

function &GetShop(&$shops, $id) { static $lastShop = null; if ($lastShop == null) { echo "lastShop is null <br/>"; } else { echo "lastShop: [" . print_r($lastShop, true) . "]<br/>"; } if ($lastShop != null && $lastShop['id'] == $id) { return $lastShop; } for ($i = 0; $i < count($shops); $i++) { if ($shops[$i]['id'] == $id) { $lastShop = &$shops[$i]; return $shops[$i]; } } } $shops = array( array("id"=>"1", "name"=>"bakery"), array("id"=>"2", "name"=>"flowers") ); GetShop($shops, 1); GetShop($shops, 1); GetShop($shops, 2); GetShop($shops, 2); 

Однако, похоже, есть эмитент с линией:

 $lastShop = &$shops[$i]; 

Когда я запускаю эту функцию как есть, я получаю этот вывод:

 lastShop is null lastShop is null lastShop is null lastShop is null 

Когда я удаляю «&» для передачи по значению вместо этого, он отлично работает:

 lastShop is null lastShop: [Array ( [id] => 1 [name] => bakery ) ] lastShop: [Array ( [id] => 1 [name] => bakery ) ] lastShop: [Array ( [id] => 2 [name] => flowers ) ] 

Тем не менее, я хотел бы перейти по ссылке, потому что найденный массив должен быть впоследствии изменен. Кто-то сталкивался с этой проблемой раньше и мог советовать, как он ее решил?