|
|
|
|
|
для: GeorgeIV
(11.04.2008 в 09:54)
| | во! спасибо большое | |
|
|
|
|
|
|
|
для: mechanic
(11.04.2008 в 09:45)
| | Цитата из мануала:
Переменные переменные
Иногда бывает удобно иметь переменными имена переменных. То есть, имя переменной, которое может быть определено и изменено динамически. Обычная переменная определяется примерно таким выражением:
<?php
$a = "hello";
?>
Переменная переменная берет значение переменной и рассматривает его как имя переменной. В вышеприведенном примере hello может быть использовано как имя переменной при помощи двух знаков доллара. То есть:
<?php
$$a = "world";
?>
Теперь в дереве символов PHP определены и содержатся две переменные: $a, содержащая "hello", и $hello, содержащая "world". Таким образом, выражение
<?php
echo "$a ${$a}";
?>
выведет то же, что и
<?php
echo "$a $hello";
?>
то есть, они оба выведут: hello world.
Для того чтобы использовать переменные переменные с массивами, вы должны решить проблему двусмысленности. То есть, если вы напишете $$a[1], обработчику необходимо знать, хотите ли вы использовать $a[1] в качестве переменной, либо вам нужна как переменная $$a, а затем ее индекс [1]. Синтаксис для разрешения этой двусмысленности таков: ${$a[1]} для первого случая и ${$a}[1] для второго.
Внимание
Пожалуйста, обратите внимание, что переменные переменные не могут использоваться с Суперглобальными массивами PHP. Это означает, что вы не можете делать что-то вроде ${$_GET}. Если вы ищете способ использовать суперглобальные переменные и старые HTTP_*_VARS, вы можете попробовать ссылаться на них. | |
|
|
|
|
|
|
|
для: neokortex
(11.04.2008 в 09:35)
| | так я ж говорю! раз переменная нужна за пределами функции, сделай вывод этой переменной в область глобальной видимости!
function post ($name_perem) {
global ${$name_perem}_status;
${$name_perem}_status = (isset($_POST[$name_perem]) ? "мэйл присутствует" : "мэйл отсутствует");
}
post ("email");
echo $email_status; //нахрена тут кавычки..
|
| |
|
|
|
|
|
|
|
для: neokortex
(11.04.2008 в 09:31)
| | например
function post ($name_perem)
{ if (!isset ($_POST['$name_perem'])) $$name_perem_status="мэйл отсутствует";
else $$name_perem_status="мэйл присутствует";
};
post ("email");
echo "$email_status";
|
| |
|
|
|
|
|
|
|
для: vitali
(11.04.2008 в 09:25)
| | в общем $$name_perem_status=true; должно принять вид $email_status=true; ну или false, вот т.е. на выходе должна получиться переменная с таким именем $email_status.
может кто привести пример синтаксиса, такое вообще возможно? | |
|
|
|
|
|
|
|
для: mechanic
(11.04.2008 в 09:20)
| | для обращения к переменной в переменной используется синтаксис $$ с учетом "области видимости" | |
|
|
|
|
|
|
|
для: DEM
(10.04.2008 в 18:46)
| | извините, это вопрос такой, у меня она не работает, вот я и хочу узнать, как правильно ее написать, скорре всего ошибка в синтаксисе $$ | |
|
|
|
|
|
|
|
для: neokortex
(10.04.2008 в 18:39)
| | у тебя $name_perem_status внутри функции никак не определена
может ты хотел написать что то вроде ${$name_perem}_status ?
в любом случае если надо сделать переменную доступной ВНЕ функции, то без global $var; не обойтись | |
|
|
|
|
|
|
|
для: neokortex
(10.04.2008 в 18:39)
| | $_POST['$name_perem'] - тут кавычки не нужны
$$name_perem_status - а два $ так и должны быть? | |
|
|
|
|
|
|
| делаю одни и те же операции, решил уже написать функцию.
Функция проверяет наличие той или иной переменной, и создает еще одну с указанием результата проверки, у меня вот так
function post ($name_perem) {
if (!isset ($_POST['$name_perem'])) $$name_perem_status=false;
else $$name_perem_status=true;
};
name_perem("email");
|
| |
|
|
|
|