проверка с переменными переменными не работает - PullRequest
0 голосов
/ 21 июня 2009
$method = 'post';

$method = strtoupper($method);
echo $method.'test1';

$method = '_'.$method;
echo $method.'test2';

$method = $$method;
echo $method.'test3';

Почему это не печатает содержимое $ _POST между 2 и 3?

Ответы [ 2 ]

1 голос
/ 21 июня 2009

В дополнение к превосходной точке зрения Джона Кугельмана, я бы использовал следующее

$method = $_POST;

echo $method['test1'];

echo $method['test2'];

echo $method['test3'];

и не пытайтесь получить доступ к contant имени массива через строку

Если вы действительно настаиваете на использовании строки для доступа к ним, вы могли бы

$method = "post";
$method = strtoupper($method."_");    
if (isset(${$method})) {
  $method = ${$method};

  echo $method['test1'];

  echo $method['test2'];

  echo $method['test3'];
}
1 голос
/ 21 июня 2009

Вы хотите, чтобы $method['test3'] получил доступ к элементам массива $_POST.Оператор точка . выполняет конкатенацию строк.Квадратные скобки [] используются для доступа к массиву.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...