Найти в Дзене
Жаркое лето ZZ-го

Сделаю сам свой сайт. 9. Нюансы PHP.

Оглавление

Разница между одинарными и двойными кавычками

Всё, что в операторе вывода находится внутри одинарных кавычек, выводится как текст. А в тексте в двойных кавычках можно вставлять переменные.

$car = "Opel";

оператор echo 'Марка машины - $car'

выведет Марка машины - $car

а оператор echo "Марка машины - $car"

выведет Марка машины - Opel

Переменная внутри кавычек

Если после переменной сразу без пробела идут текст или цифры, то РНР принимает их за продолжение имени переменной.

Чтобы этого избежать, нужно взять переменную в фигурные скобки.

$money = 500;

оператор echo "Цена - $moneyруб."

выведет "Цена - ."

а оператор echo "Цена - {$money}руб."

выведет "Цена - 500руб."

Тэги <?php и <?

Почему лучше использовать полный вариант тэга - <?php, - нежели сокращённый - <?, - вариант?

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

С ВОМ или без

-2

BOM - Byte Order Mark - метка порядка байтов, которая вставляется в начало файла, когда преобразовываешь его кодировку в формат "Юникод" (он же UTF-8). Эта метка сразу говорит всем программам, открывающим этот фаль, что он закодирован в "Юникод".

Всё это хорошо, но в РНР есть функция header, которая много чего может сообщить браузеру, но только при одном условии - если она будет первым, что браузер увидит. Primae noctis, так сказать.

-3

Тэг <?php браузер не видит, потому что это тэг обрабатывается веб-сервером и до браузера не доходит. И, вроде бы, функция header - самая первая. Но есть один нюанс - эта метка ВОМ, котороую не видно, но она есть, как тот суслик из фильма. Из-за неё, родимой, браузер выдаст ошибку " Warning: Cannot modify header information - headers already sent by..." (Предупреждаю: Не могу изменить заголовочную информацию - заголовки уже того...)

Чтобы функция header заработала, нужно перекодировать файл в UTF-8 без BOM.

-4