Можем ли мы реализовать функцию экстракта PHP в PHP без использования Zend API
-
20-09-2019 - |
Вопрос
Функция извлечения PHP добавляет переменные в локальный объем вызова функции. Как мы можем написать нашу собственную функцию PHP, что делает то же самое?
Решение
Я не думаю, что вы можете сделать это в Pure-PHP: функция не имеет доступа к переменным его вызывающему.
Это похоже на то, что вам нужно, чтобы написать расширение C для разработки - вы будете иметь больше контроля над внутренними переменными PHP.
(И я не понимаю, почему вы пытаетесь это сделать: почему бы просто не использовать существующие extract
функция? )
Другие советы
Хорошо, если это просто для удовольствия, это возможно:
<?php
$data=array('a' => 1, 'b' => 2);
foreach ($data as $name => $value) {
${$name} = $value;
}
echo $a;
?>
Но некоторые проблемы - как конфликты с данными $, $ name и $ value, и вы не можете обернуть их в функцию. Но возможно.
Да, это возможно,
Причина, по которой я сделал это, потому что мне нужно что -то больше
function extractArray($ar) {
if(count($ar)>=1) {
foreach($ar as $k=>$v) {
$GLOBALS[$k] = (is_array($v)?$v:trim($v));
}
}
}
Я просто подбираю свои $ _get, $ _post, и еще массивы, например, например, $ _get ['username'] = 'justnajm'; Extractarray ($ _ Get);
И я могу просто повторить, и это напечатает «justnajm»