вторник, 28 марта 2017 г.

PHP. Использование переменных переменных

Иногда бывает удобно иметь переменными имена переменных. То есть, имя переменной, которое может быть определено и изменено динамически. Обычная переменная определяется примерно таким выражением:
<?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] для второго.



<html>
<head>
<title>Variable Variables</title>
</head>
<body>
<?php
$a = "hello";
$hello = "Hello everyone.";
echo $a ."<br />";
echo $hello ."<br />";

echo $$a ."<br />"; // выводит Hello everyone.

// Пример seats.
$a = 'Kevin';
$b = 'Mary';
$c = 'Joe';
$d = 'Larry';
$e = 'Audrey';

$students = array('a', 'c', 'e');

foreach($students as $seat) {
echo $$seat ."<br />";
}

/* Выводит: Kevin Joe Audrey */

foreach($students as $seat) {
echo ${$seat[1]} ."<br />"; // ничего не выводится
}

foreach($students as $seat) {
echo ${$seat}[1] ."<br />"; // e o u
}



?>
</body>
</html>

Комментариев нет:

Отправить комментарий

Materialize-css. Футер

Сделаем футер и прижмем к низу страницы. Документация: https://materializecss.com/footer.html