Проблема, не позволяющая мне использовать ссылку на время вызова, состоит в том, что я не могу изменить объявление встроенных функций php, я использовал много ссылок на время вызова для встроенных функций, я точно знаю, что это за функции делаю, и я знаю, что никаких неприятностей не произойдет, мне нужно использовать эту функцию, и я не могу переписать эти функции, кроме того, не всегда мне нужно, чтобы она передавалась по ссылке, она нужна мне в определенных ситуациях, например:
$rows[] = array_map('array_shift', &$data);
вместо того, чтобы делать оператор foreach, я экономлю время и строки кодирования, выполняя array_map
с и смещение массива в качестве обратного вызова, проблема в том (я не знаю, является ли это ошибкой), что array_shift
не получить мой массив по ссылке (я думаю, это потому, что ссылка работает только для 1 уровня, если вы получаете ссылочное значение и выбрасываете его на другую функцию, которая не получает по ссылке, она теряет ссылку, я бы хотел, чтобы у php были реальные указатели, а не это ссылка), поэтому мне нужно передать массив по ссылке во время вызова.
Другой пример
new ArrayObject(&$_POST, ArrayObject::ARRAY_AS_PROPS)
Я хочу my $_POST
как объект массива, но если я сбрасываю что-то, я хочу, чтобы это происходило на реальном $_POST
, и поэтому я мог бы делать с $_SESSION
и $_GET
, я знаю, что я делая в этом случае, и если это плохая практика, я не вижу проблемы с этим, вместо того, чтобы делать это, я должен был создать свой собственный объект, который получил массив по ссылке, я потерял некоторое время с этим ....
Дело в том, что любой язык позволяет передавать указатели на функции, которые не были предназначены для получения указателей, может быть, это плохая практика, но решать мне, не так ли?
Эта функция не должна быть устаревшей.