Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
5 семестр / Инструм.средства / ЛЕКЦИИ / Лекция №4 Общие понятия и описание PHP.doc
Скачиваний:
54
Добавлен:
17.02.2016
Размер:
186.88 Кб
Скачать

6. Ссылки

Как уже отмечалось ранее, в PHP нет такого понятия, как указатель. Хорошо это или плохо — сложно сказать. То, что является достоинством С — указатели — одновременно является его недостатком — уж слишком там все запутано, ошибки, связанные с указателями, очень трудно найти. Лично мне больше нравится идеология указателей в языке Pascal: вы можете нормально работать, как с указателями, так и без них. В любом случае, большее, на что нам приходится рассчитывать в PHP — это ссылочные переменные или просто ссылки. Ссылки бывают двух типов: символические и жесткие. Последний тип ссылок появился в четвертой версии интерпретатора.

Жесткие ссылки

Жесткая ссылка — это просто псевдоним имени другой переменной. Ссылки на ссылку на переменную (многоуровневые ссылки), как в языке Perl, не поддерживаются. Для создания жесткой ссылки используется оператор &:

<?

$х = 77;

$link = &$х;

$link = 66; echo $link; ?>

Нетрудно догадаться, что выведет программа — 66. Для разрыва связи между переменной и ссылкой используется функция UnSet: UnSet ($link); Саму переменную нельзя удалить до тех пор, пока на нее ссылается хотя бы одна ссылка.

Символические ссылки

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

<?

$х = 77;

$link = "х"; // символическая сслыка на переменную $х

echo $$link; // выводит 77

echo $link; // выводит х

$$link = 66; // аналогично $х = 66

echo $x; // выведет 66

?>

Я не рекомендую использовать символические ссылки, их нужно использовать в самых крайних случаях, которых будет немного. Использование символических ссылок может и без того запутать запутанную программу. Лучше использовать жесткие ссылки: хотя бы исходя из того, что для них нужен один оператор $. А вообще старайтесь не использовать ссылки — так ваша жизнь станет чуть проще.

7. Основные конструкции языка

Конструкции языка PHP очень похожи на конструкции языка С, поэтому, если вы знаете язык С, очень быстро освоите PHP. Нужно заметить, что синтаксис PHP очень лаконичен, а мы знаем, что «краткость — сестра таланта». PHP еще раз позволяет нам убедиться в этом.

7.1. Условный оператор

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

Конструкция if-else (условный оператор) является, наверное, самой распространенной конструкцией в программах. Какая же серьезная программа не использует эту конструкцию?

Синтаксис конструкции if-else таков:

if (логическое выражение)

оператор_1;

else

оператор_2;

Первый оператор будет выполнен, если логическое выражение истинно, второй — если логическое выражение ложно. Можно также использовать сокращенную форму конструкции, без второго оператора:

if (логическое выражение)

оператор_1;

В этом случае мы можем обойтись без «else». Если вам нужно выполнить не один оператор, а целую группу, тогда эти операторы следует поместить в блок операторов { }:

if (логическое выражение)

{

оператор_1;

оператор__1;

}

else

{

оператор_1+1;

оператор_п;

}

Кажется, в этой книги я еще ни разу не обращал внимания на разделитель операторов — это символ точка с запятой ";" Совсем очевидно, что мы можем записать несколько операторов в одну строку:

if (логическое выражение) { оператор_1; ... оператор_1; }

В данном случае после фигурной скобки можно ставить точку с запятой, а можно и не ставить. Но если вы думаете использовать полную конструкцию (то есть с «else»), тогда точка с запятой не ставится. Если же вместо блока операторов используется только один оператор (см. общий синтаксис), тогда точка с запятой после него (перед else) обязательна:

if (Sa>5) echo "a>5";

else echo "a<=5";

Существует еще один вариант конструкции if-else. Вот его синтаксис

if (логическое выражение 1)

оператор_1; eiseif ( логическое выражение 2 )

оператор_2; else

оператор_3;

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

Для полноты описания данной конструкции нужно сказать, что вы можете использовать еще один — третий альтернативный вариант (на этот раз уже точно последний) конструкции:

if (логическое выражение 1):

оператор_1; eiseif ( логическое выражение 2 ) :

оператор_2; else:

оператор_3; endif

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