За чистый и ясный код!

Статьи на тему программирования под веб, используя PHP, MySQL, Jquery и многое другое

Переменные переменных в PHP

Ноябрь26

В этой статье речь пойдет о так называемых — «переменные переменных«.

Что же это??? Наверняка каждый программист php сталкивался с переменными, которые имеют нестандартное название, точнее нестандартное создание переменных ($$ и тд), вот примеры

$$someVariable

${'rrr'}

$f()

Все это так называемые — «переменные переменных«. Это значение переменной, которое может стать самой переменной.

Разберем как они работают. Перед Вами небольшой код в котором я постарался собрать все примеры.

<?php
function myFunc()
{
echo 'Hello&lt;br&gt;';
}

$myVariable = 'myFunc';

$myVariable();
/*----------------------------------------*/
$someVar = 'hello';

$$someVar = 'Auf Wiedersehen&lt;br&gt;';

echo $hello;
/*----------------------------------------*/
$втораяПеременная = '123';

$$втораяПеременная = 'apple';

echo ${'123'};
?>

На экране будет выведено:

Hello
Auf Wiedersehen
apple

Я объясню на одном примере :

function myFunc()
{
echo 'Hello<br>';
}

$myVariable = 'myFunc';
$myVariable();

Тут видно, что создана ф-ция с названием myFunc которая выведет слово Hello<br>.  Мы конечно можем просто вызвать ф-цию через обращение к ней myFunc(); , но можно воспользоваться и другой конструкцией. Создать переменную (любую) потом присвоить ей значение — это само название ф-ции. И применив к переменной скобки () мы вызовем на исполнение данную ф-цию.

Многие могут сказать, мол чё за маразм, нафиг надо, чего путаете, но поверте, когда будет большой опыт, то будут ситуации в которых эти конструкции сильно пригодятся.

В последнем примере, как Вы думаете, почему я применил такой подход ${‘123’}; зачем эти фигурные скобки???? Ответ — т.к переменная не может начинаться с цифры, а $втораяПеременная = ‘123’; , точнее значение переменной, которое потом преобразуется в переменную, именно цифра, то для экранирования, обхода этого ограничения, используется ${‘someVar’} конструкция.

И еще, название переменных может быть не только на латинице, как пишется в некоторых книгах [a-zA-Z_0-9], но даже и иероглифы $? = ‘123’; (только если кодировка файла UTF-8, естественно).

Полезная ссылка:

http://www.php.net/manual/en/language.variables.php

Всем удачи, Максим.

Статья просмотренна 28872 раз, зашло посетителей 7777

  

Облако тегов

cli csv dump events form Kohana locale models MySQL mysqldump orm PHP tools trigger validate газ газовый счетчик итоги кеширование переменные

Облако тегов плагина WP Cumulus для WordPress требует для просмотра Flash Player 9 или выше.

Я на твиттере!

  • у твиттера тоже бывают перерывы...

Календарь

Сентябрь 2017
Пн Вт Ср Чт Пт Сб Вс
« Июл    
 123
45678910
11121314151617
18192021222324
252627282930  

Сейчас на сайте