Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
ПвИ / Конспект лекций.doc
Скачиваний:
247
Добавлен:
01.06.2015
Размер:
1.05 Mб
Скачать

Порядок вычисления операторов

При вычислении операторов интерпретатор обычно просто обрабатывает выражение слева направо.

Рассмотрим операторы по порядку старшинства, начиная с самого высокого, т.е. с того, который вычисляется раньше всех.

++ – –

/ * %

+ –

< <= >= >

= = = = = !=

&&

||

= += -= /= *= %= .=

and

xor

or

Динамические переменные

Имя переменной можно сохранить в другой переменной.

$user = “Али”;

эквивалентно следующей записи:

$holder = “user”;

$$holder = “Али”;

В переменной $holder записана строка “user”, поэтому выражение $$holder – это знак $, за которым следует значение переменной $holder. PHP интерпретирует это как $user.

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

${“user”} = “Али”;

Следует отметить что, воспользовавшись оператором конкатенации и циклом, можно создавать сразу несколько динамических переменных.

Для обращения к динамической переменной используется обычный синтаксис:

$user = “Али”;

print $user;

это эквивалентно следующему:

$user = “Али”;

$holder = “user”;

print $$holder;

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

$user = “Али”;

$holder = “user”;

print “$$holder”;

Выводится знак $, а потом строка user, образуя строку $user. Когда переменная обрамлена “” (двойными кавычками), PHP подставляет вместо нее соответствующее значение. В данном случае PHP подставляет вместо переменной $holder ее значение – user. Для того чтобы указать PHP, что часть строки – это динамическая переменная, необходимо заключить ее в фигурные скобки:

$user = “Али”;

$holder = “user”;

print “${$holder}”;

Пример: (во всех случаях вывод – Али)

$holder = “user”;

$$holder = “Али”;

print “$user<br>”;

print $$holder;

print “<br>”;

print “${$holder}<br>”;

print “${‘user’}”;

Ссылки на переменные

Обычно переменным присваиваются значения других переменных. Другими словами, если присвоить значение переменной $aVar другой переменной , $anotherVar, то копия значения первой переменной будет записана во вторую. В дальнейшем никакие значения первой переменной никак не отразятся на значения второй:

$aVar = 42;

$anotherVar = $aVar;

$aVar = 325;

print $anotherVar; // выводится 42

В PHP имеется возможность заставить переменную $anotherVar постоянно иметь то же самое значение, что и у переменной $aVar:

$aVar = 42;

$anotherVar = &$aVar;

$aVar = 325;

print $anotherVar; // выводится 325

В этой программе изменился только один символ по сравнению с предыдущей программой. Символ & перед именем переменной $aVar говорит о том, что создается ссылка на эту переменную, и теперь все изменения ее значения отразятся на значении переменной $anotherVar. Другими словами, обе эти переменные связаны с одним и тем же значением.

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

Замечание. Механизм ссылок появился только в 4-й версии PHP.

Лекция 5. Инструкция if

При выполнении инструкции if вычисляется выражение в скобках. Если значение этого выражения равно true, то блок программы выполняется. В противном случае блок программы полностью пропускается. Таким образом, программа может принимать решение в зависимости от многих факторов.

if(выражение)

{

//этот фрагмент выполняется, если выражение истинно

}

В следующем листинге приведен пример блока программы, который выполняется только в том случае, если в переменной содержится строка "happy".

<?php

$mood = "happy";

if ($mood == "happy")

{

print "Я в хорошем настроении!";

}

?>

С помощью оператора if сравнивается значение переменной $mood со строкой "happy", и если они совпадают, то блок программы, следующий за инструкцией if, выполняется. В данном примере этот блок обрамлен фигурными скобками, но это необходимо делать только в том случае, если данный блок состоит из нескольких инструкций. Таким образом, эту условную инструкцию можно было написать и так:

if ($mood == "happy")

print "Я в хорошем настроении!";

Если изменить значение переменной на sad, то условие не выполнится и блок будет пропущен.

Соседние файлы в папке ПвИ