Листинг 2.13. Оператор конкатенации
<?php
$Query = "SELECT LastName, FirstName " . "FROM Clients " .
"WHERE Disposition = 'Pleasant' " . "ORDER BY LastName ";
print($Query);
?>
Ранее при описании переменных подчеркивалось, что имени переменной всегда предшествует знак доллара. Это справедливо для глобальных, локальных переменных или аргументов функций. Есть оператор, который означает "работать со значением, которое хранится в указанной переменной". Этот прием применим в том случае, когда при создании кода имя переменной, используемой в нем, еще неизвестно. Такой оператор, обозначенный символом доллара, может работать с результатом, полученным другим оператором, обозначенным символом доллара, или с результатом сложного выражения, заключенного в фигурные скобки. Заметим, что косвенная ссылка не поддерживается внутри строк, заключенных в кавычки, или в документах HERE, если при этом не используются фигурные скобки.
| Листинг 2.14. Оператор косвенной ссылки_
<?php
//задать переменные $var_name = "myValue"; $myValue = 123.456; $array_name = "myArray"; $myArray = array(1, 2, 3); //напечатать 123.456" print($var_name . "<br>n");
//напечатать "$myValue", возможно, не то, что требовалось
//$var_name принимает "myValue", но косвенная
//ссылка внутри строк, заключенных в кавычки, не работает,
// а дополнительный символ доллара печатается как есть
print("$var_name<br>n");
//напечатать "123.456"
// для включения сложных переменных в строки //использует специальную форму записи print("{$var_name}<br>n"); //напечатать "3"
print(${$array_name}[2] . "<br>n");
?>
Фигурные скобки группируют переменные аналогично тому, как это делают скобки при выполнении арифметических операций, что позволяет сократить неоднозначность, которая возникает при ссылке на переменные. Они позволяют задавать элементы многомерных массивов внутри строк. Но даже в тех ситуациях, когда это не очень нужно, можно использовать фигурные скобки. В листинге 2.14 показано использование фигурных скобок. Здесь совершенно очевидно, что переменная используется для присвоения имени другой переменной.
| Листинг 2.15. Оператор молчания_
<?php
$a = 7;
$b = 0;
// подавить вывод предупреждения о делении на нуль
@ $c = $a / $b;
?>
Оператор @ подавляет вывод любого сообщения об ошибке, когда он предшествует выражению. Обычно, когда встроенная функция выполняется с ошибкой, анализатор PHP отсылает текст непосредственно в браузер. Иногда это является простым предупреждением. Если требуется подавить любой вывод сообщений об ошибках или предупреждений, непосредственно перед именем функции необходимо поместить оператор @. Оператор @ также можно разместить перед выражением, если вы ожидаете появления такой ошибки, как деление на нуль. С помощью директивы error_reporting можно подавить вывод сообщений об ошибках для всех функций сценария (листинг 2.15).
Оператор ? эквивалентен оператору if и называется троичным оператором, так как он принимает сразу три параметра: выражение, которое оценивается, выражение, которое отрабатывается, если первое выражение возвращает значение TRUE, и выражение, которое выполняется, если первое выражение возвращает результат FALSE. Подробно оператор ? описывается в главе 3, "Операторы управления".
Оператор -> применяется непосредственно для ссылки на методы или свойства объектов, которые обсуждаются в главе 6, "Классы и объекты". В левой части оператора указывается имя класса, а в правой части задается имя функции или переменная внутри класса. Оператор :: позволяет обращаться к члену класса, что дает возможность вызывать методы классов, не создавая при этом экземпляры объектов. В правой части оператора :: задается имя класса заданного диапазона. В левой части может задаваться имя метода или константы. Оператор instanceof проверяет, является ли объект в левой части элементом класса, указанного справа.
Операторы -> и :: можно объединять в цепочки. Выражения $a->$b->c() и ClassA::ClassB::methodC() представляют собой допустимые выражения.
Язык PHP позволяет использовать в левой части оператора :: три специальных имени: self, parent и main. Пространство имен self относится к локальному пространству имен, его нельзя использовать вне определения класса. Пространство имен parent относится к классу, из которого происходит текущий класс. Пространство имен main относится к глобальному диапазону.
Оператор => используется при объявлении массивов (детально он обсуждается в главе 5, "Массивы"). При создании массива с помощью оператора array индекс его элемента можно задать с помощью оператора =>. В левой части этого оператора указывается индекс, а в правой части - значение. Этот оператор используется в операторе foreach.
Для выполнения команд оболочки используется оператор Символ обратной кавычки оператора можно найти на любой клавиатуре слева. Это выражение задает команду оболочки операционной системы. Такие выражения подобны функции shell_exec, которая описана в главе 9, "Операционная система". В листинге 2.16 показан простой пример оператора обратной кавычки.
| Листинг 2.14. Оператор обратной кавычки
<?
//распечатать содержимое каталога print(nl2br(vls -lav));
?>
ТОП-10 популярных
Для работы с вещественными числами в MySQL предусмотрено три типа данных - это типы FLOAT, DOUBLE, DECIMAL. Числовой тип FLOAT...
БОЛЬШЕ БОЛЬШИХ LCD-мониторов
Процесс вытеснения с рынка мониторов с электронно-лучевой трубкой (CRT) продолжается. О смещении акцентов в пользу LCD-мониторов теперь заявляют даже те...
Процесс вытеснения с рынка мониторов с электронно-лучевой трубкой (CRT) продолжается. О смещении акцентов в пользу LCD-мониторов теперь заявляют даже те...
Больше больших LCD-мониторов
Процесс вытеснения с рынка мониторов с электронно-лучевой трубкой (CRT) продолжается. О смещении акцентов в пользу LCD-мониторов теперь заявляют даже те...
Процесс вытеснения с рынка мониторов с электронно-лучевой трубкой (CRT) продолжается. О смещении акцентов в пользу LCD-мониторов теперь заявляют даже те...
НОУТБУК с блестящим экраном
Eсли выпустившая ноутбук фирма предлагает его в качестве «замены настольному ПК», то это должно подразумевать под собой нечто большее, чем...
Eсли выпустившая ноутбук фирма предлагает его в качестве «замены настольному ПК», то это должно подразумевать под собой нечто большее, чем...
Иди и пиши. TravelMate C100
Планшетный компьютер платформы Tablet PC обязан в первую очередь быть легким, способным достаточно долго работать без подзарядки батарей. Эти требования...
Планшетный компьютер платформы Tablet PC обязан в первую очередь быть легким, способным достаточно долго работать без подзарядки батарей. Эти требования...
Магнито-оптический дисковод DynaMO
Cейчас, когда традиционные флоппи-дисководы на долгие годы замерли в своем развитии, поиск альтернативных носителей продолжается, и ситуация, казалось бы, разрешилась...
Cейчас, когда традиционные флоппи-дисководы на долгие годы замерли в своем развитии, поиск альтернативных носителей продолжается, и ситуация, казалось бы, разрешилась...
Компьютер для гурманов.«Эксимер ДМ»
Российская компания «Эксимер ДМ», известная как производитель настольных компьютеров, рабочих станций, серверов и ноутбуков, выступила техническим спонсором проведения торжеств, посвященных...
Российская компания «Эксимер ДМ», известная как производитель настольных компьютеров, рабочих станций, серверов и ноутбуков, выступила техническим спонсором проведения торжеств, посвященных...
Для длинных строк, т.е. строк длиннее 255 символов, в MySQL предусмотрены типы BLOB (Binary Large Object, большой двоичный объект) и...
В дополнение к календарным типам, предназначенным для хранения даты и времени отдельно, MySQL также поддерживает гибридные типы данных DATETIME и...
Вообще, к изменению настроек сервера прибегают очень редко. В MySQL программа заранее настроена так, чтобы соответствовать самым распространенным и основным...
PHP. Переменные, операторы и выражения. Часть Десятая.
28-12-2009
<< Предыдущая статья | Следующая статья >> |
PHP. Переменные, операторы и выражения. Часть Девятая. | PHP. Переменные, операторы и выражения. Часть Одиннадцатая. |