Четверг, 16.05.2024, 09:01
DigitalBox
Приветствую Вас Гость | RSS
Главная Переменные в сценарии Регистрация Вход
Меню сайта

Переменные в сценарии


Сценарий, приведенный в предыдущем разделе, отображает на Web-странице приветствие, используя простую инструкцию echo. В этом разделе мы тоже создадим сценарий, отображающий приветствие, но с использованием переменной. Ранее для вывода приветствия мы использовали следующий фрагмент кода на РНР:

‹?php
     echo "<р>3дравствуй, мир! </р>";
?›

Приведем полный текст сценария, содержащий раздел РНР с переменной и отображающий приветствие "Здравствуй, мир!":

<html>
<head> <title>Сценарий с использованием переменной</title>/head>
<body>
‹?php
     $salutation = "Здравствуй, мир!";
     echo "<p> $salutation </p>";
?›
</body>
</html>

Если этот сценарий загрузить в браузер, на Web-странице отобразится приветствие Здравствуй, мир!

Переменная сохраняет свое значение в процессе выполнения всего сценария, а не только в отдельном РНР-разделе. Если переменной присвоить значение 5 в начале сценария, то и в конце сценария значение этой переменной будет равно 5 (если, конечно, вы не присвоите ей нового значения). Например, следующий сценарий содержит два отдельных РНР раздела:

<html>
<head><title>Сценарий с использованием переменной</title></head>
<body>
‹?php
     $salutation = "Здравствуй, мир!";
     echo "<p> $salutation </p>";
?›
<р>Это раздел HTML</p>
‹?php
     echo "<p>$salutation еще раз</р>";
?›
</body>
</html>

Если URL-адрес этого сценария указать в браузере, то на Web-странице отобразится следующая информация:

Здравствуй, мир!
Это раздел HTML
Здравствуй, мир! еще раз


Более подробно об операторах вывода

Как упоминалось в предыдущих разделах, оператор echo имеет следующий формат:

echo элемент_вывода1, элемент_вывода2, элемент_выводаЗ, .....

Вместо любого элемента вывода можно использовать переменную. Например, можно создать такой РНР-раздел:

‹?php
     $first_name = "Кларк";
     $last_name = "Кент";
     echo "Меня зовут ",$first_name," ",$last_name;
?›

Приведем результат выполнения кода этого раздела:

Меня зовут Кларк Кент

Обратите внимание на пробел между переменными $first_name и $last_name. Если не добавить этот пробел, эти две переменные будут выводиться слитно: Меня зовут КларкКент

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

$number = 123;
$word1 = "Здравствуй,";
$word2 = "мир!";

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

Оператор echo
Результат вывода
echo $number;
123
echo $word1, $word2;
Здравствуй,мир!
echo $word1," ",$word2;
Здравствуй, мир!
echo $word1 $word2;
Неверно, потому что имена переменных не отделены друг от друга
запятыми. Это приведет к генерации сообщения об ошибке
echo "$wordl $word2 снова";
Здравствуй, мир ! снова

В некоторых операторах echo интерпретатор РНР не может отделить имя переменной, если сразу за ним следует текст. В подобных случаях имя переменной необходимо заключать в фигурные скобки. Например, предположим, что в сценарии используются следующие строки:

$type = "bird";
echo "Keep the $typecage clean";

Вместо желаемого результата будет получено следующее сообщение:

Notice: Undefined variable: typecage in testvar.php on line 6

После уведомления о проблеме будет выведен такой текст:

Keep the clean

Для того чтобы этот код работал правильно, необходимо использовать оператор echo следующего формата:

echo "Keep the {$type}cage clean";

тогда будет получен следующий результат:

Keep the birdcage clean


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

РНР позволяет использовать динамические имена переменных, получившие название переменных переменных. Переменную можно описать, используя значение, сохраненное в другой переменной, т.е. одна переменная может содержать имя другой переменной. Предположим, например, что вы хотите создать переменную $city с значением Лос-Анджелес. Для этого можно использовать следующий синтаксис:

$name_of_the_variable = "city";

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

$$name_of_the_variable = "Лос-Анджелес";

Обратите внимание на дополнительный символ доллара в начале имени переменной. Это и есть обозначение переменной переменной. Этот оператор создает новую переменную, именем которой является значение, содержащееся в переменной $name_of _the_variable:

$city = "Лос Анджелес";

Значение переменной $name_of_the_variable при этом не изменится.

Следующий пример иллюстрирует особенности работы с такими переменными. Операторы приведенного сценария вряд ли окажутся очень полезными, поскольку можно придумать лучший вариант решения данной задачи. Истинное преимущество переменных переменных становится понятным, когда они используются с массивами и циклами. Эти вопросы обсуждаются в следующих разделах.

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

$Reno = 360000;
$Pasadena = 138000;
$cityname = "Reno";
echo "Население $cityname - ${$cityname}";
$cityname = "Pasadena";
echo "Население $cityname - ${$cityname}";

Результатом выполнения этого кода является следующий текст:

Население Reno - 360000
Население Pasadena - 138000

Обратите внимание, что в операторе echo имена переменных необходимо заключать в фигурные скобки. Без использования фигурных скобок вы получите совсем другой результат.


Удаление переменных

Удалить информацию из переменной можно с помощью оператора:

$age = __;

Этот оператор удаляет значение переменной $age. Причем это не означает, что теперь переменная $age установлена в значение 0. Это лишь значит, что переменная $age не содержит никакой информации. Технически это означает, что значением $аде является строка нулевых символов. Если вы попытаетесь вывести значение $age на экран с помощью инструкции echo, то на экран ничего не выведется. (Сообщение об ошибке при этом тоже не выводится.)

Переменную можно удалить и следующим образом:

unset($age);

После выполнения этого оператора переменная $age больше не будет существовать. Если вы попробуете вывести ее с помощью оператора echo, то получите сообщение об ошибке "undefined variable" (неопределенная переменная). Таким образом, можно одновременно удалить несколько переменных:

unset($age, $name, $address);

Форма входа

Мини-чат

Календарь новостей
«  Май 2024  »
ПнВтСрЧтПтСбВс
  12345
6789101112
13141516171819
20212223242526
2728293031

Поиск

Друзья сайта
Скажи сайту спасибо
ЯндексЯндекс. ДеньгиХочу такую же кнопку



Получить WMR-бонус на свой кошелек!

Статистика

Онлайн всего: 1
Гостей: 1
Пользователей: 0

Copyright MyCorp © 2024 Бесплатный конструктор сайтов - uCoz