Меню
Бесплатно
Главная  /  Советы  /  Синтаксис php. Основной синтаксис PHP

Синтаксис php. Основной синтаксис PHP

Простая PHP-страница (Hello)

Создайте файл с именем hello.php в корневом каталоге ваших документов Web-сервера и запишите в него следующее:

Пример 2-1. Первый скрипт на PHP: hello.php
Тестируем PHP
Эта программа выведет следующее:
Тестируем PHP Привет!


Заметим, что сходства со скриптами на CGI нет. Файл не обязан быть выполнимым или отмеченным любым другим образом. Это просто обычный файл HTML, в котором есть набор специальных тегов, делающих много интересного.
Эта программа чрезвычайно проста, и для создания настолько простой странички даже необязательно использовать PHP. Все что она делает - это выводит «Привет! с использованием функции PHP echo().
Если у вас этот пример не отображает ничего или выводит окно загрузки, или если вы видите весь этот файл в текстовом виде, то весьма вероятно, что ваш Web-сервер не имеет поддержки PHP. Попросите вашего администратора сервера включить такую поддержку. Предложите ему инструкцию по установке - раздел «Установка» данной документации. Если же вы хотите разрабатывать скрипты на PHP дома, то вам в раздел необходимые файлы. Дома можно разрабатывать скрипты с использованием любой операционной системы, но вам понадобится установить соответствующий Web-сервер.

Цель примера - показать формат специальных тегов PHP. В этом примере мы использовали . Таким образом можно сколько угодно раз переходить к коду PHP в файле HTML.

Существует множество текстовых редакторов и интегрированных сред разработки (IDE) , в которых вы можете создавать и редактировать файлы PHP.

Текстовые процессоры (Star Office Writer, Microsoft Word, Abiword и др.) в большинстве случаев не подходят для редактирования файлов PHP. Если вы используете текстовый процессор для создания скриптов на PHP, вы должны быть уверены, что сохраняете файл, как ЧИСТО ТЕКСТОВЫЙ. В противном случае PHP не сможет обработать и выполнить вашу программу.

При написании скриптов PHP с использованием встроенного «Блокнота» Windows необходимо сохранять файлы с расширением.php. «Блокнот» автоматически добавляет расширение.txt. Для обхода этой проблемы существует несколько методов.
Можно поместить название файла в кавычки (пример: “hello.php”).
Кроме того, можно выбрать «Все файлы» вместо «Текстовые документы» из ниспадающего списка с типами файлов в окне сохранения. После этого можно вводить имя файла без кавычек.

Переменные Имена переменных В РНР переменные начинаются со знака доллара ($). За этим знаком может следовать любое количество буквенно-цифровых символов и символов подчеркивания, но первый символ не может быть цифрой. Следует также помнить, что имена переменных в РНР учитывают регистр, в отличие от ключевых слов.

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

Переменная инициализируется в момент присваивания ей значения и существует до тех пор, пока выполняется программа. Т.е., в случае web-страницы это означает, что до тех пор, пока не завершен запрос.

Oбласть видимости переменых

Область действия переменной - это контекст, в котором она определена. Большая часть переменных PHP имеет одну область действия. Она охватывает также включенные (included) и необходимые (required) файлы. Например:
$a = 1; include "b.inc";
Здесь переменная $a будет доступна во включенном скрипте b.inc. Однако в определенных пользователем функциях вводится локальная область действия в пределах функции. Любая переменная, используемая в функции, по умолчанию ограничена локальной областью действия функции. Например:
$a = 1; /* глобальная область действия */ Function Test () { echo $a; /* ссылка на локальную переменную */ } Test ();
Этот скрипт ничего не выведет, потому что выржение echo ссылается на локальную версию переменной $a, которой в этой области действия не присвоено значение. Это отличается от языка C, вв котором глобальные переменные C автоматически становятся доступны функциям, если только они специально не переопределены локально. Это может вызвать проблемы, поскольку программист может непреднамеренно изменить глобальную переменную. В PHP глобальные переменные, если они будут использоваться в функции, должны объявляться в этой функции. Вот пример:
$a = 1; $b = 2; Function Sum () { global $a, $b; $b = $a + $b; } Sum (); echo $b;
Этот скрипт выведет цифру “3”. Путем объявления $a и $b глобальными в функции все ссылки на любую из этих переменных будут ссылаться на глобальную версию. число глобальных переменных, которыми может манипулировать функция, не ограничено.
Второй способ получить доступ к глобальным переменным - использовать специальныый определенный PHP массив $GLOBALS. Предыдущие пример можно переписать следующим образом:
$a = 1; $b = 2; Function Sum () { $GLOBALS["b"] = $GLOBALS["a"] + $GLOBALS["b"]; } Sum (); echo $b;


массив $GLOBALS
Массив $GLOBALS - это ассоциативным массив, индексами в котором служат имена, а значениями элементов - значения соответствующих глобальных переменных.
Другая важная особенонсть областей действия переменных - статические переменные. Статическая переменная существует только в локальной функции, но не теряет значения после выхода программы из области действия функции. Расмотрим следующий пример:
Function Test () { $a = 0; echo $a; $a++; }
Эта функция достаточно бесполезна, поскольку каждый раз при вызове она устанавливает значение $a равным 0 и выводит на печать “0”. Выражение $a++, увеличивающее значение переменной, ничего не делает, поскольку, как только выполнение функции закончено, переменная $a исчезает. Чтобы создать полезную функцию-счетчик, не теряющую значений, объявим переменную $a как static:
Function Test () { static $a = 0; echo $a; $a++; }
Теперь при каждом вызове функции Test() она будет выдавать на печать значение переменной $a и увеличивать его.
Кроме того, статические переменные помогают в работе с рекурсивными функциями. Рекурсивной называется функция, которая вызывает сама себя. К написанию рекурсивных функций следует подходить осторожно, поскольку можно сделать цикл бесконечным. Необходимо создать способ прерывания рекурсии. Следующая простая функция ведет счет до 10 с помощью статической переменной $count и останавливает рекурсию:
Function Test () { static $count = 0; $count++; echo $count; if ($count < 10) { Test (); } $count--; }


типы переменных
Как уже было сказано, PHP предоставляет определенную гибкость в отношении типов переменных, т.е. с одной и той же переменной на протяжении программы можно работать и как со строкой, и как с числом. Однако, несмотря на это в РНР существуют набор основных типов данных, которые могут явно указываться при работе с переменными:

  • integer;
  • string;
  • boolean;
  • double;
  • array;
  • object;

Целые
Целые числа задаются с использованием следующего синтаксиса:
$a = 1234; # десятичное число
$a = -123; # отрицательное число
$a = 0123; # восьмеричное число (эквивалнетно десятичному 83)
$a = 0123; # шестнадцатеричное число (эквивалнетно десятичному 18)


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

В первом случае РНР вернет string, во втором integer.


Числа с плавающей точкой
Числа с плавающей точкой («числа двойной точности») задаются с использованием следующего синтаксиса:
$a = 1.234; $a = 1.2e3;
Размер числа с плавающей точкой зависит от платформы, обычно максимальным может быть число 1.8e308 с точностью около 14 десятичных цифр (64-битный формат IEEE).
Внимание
Обычно простые десятичные дроби типа 0.1 или 0.7 преборазуются в числа двойной точности с некоторой потерей точности. Это может привести к странным результатам: например, функция floor((0.1+0.7)*10) вернет значение 7 вместо ожидаемого 8, потому что результатом внутреннего представления будет число типа 7.9999999999....
Это объясняется тем фактом. что некоторые дроби невозможно точно выразить в десятичной записи с ограниченным числом знаков. Например, 1/3 в десятичной записи принимает вид 0.3333333. . ..
Поэтому никогда н едоверяйте результатам вычислений с плавающей точкой до последней цифры и никогда не проверяйте равенство чисел с плавающей точкой. Если Вам действительон нужна более высокая точность, используйте математические функции с произвольной точностью или функции gmp.


Строки
Строки могут задаваться с использованием одного или двух наборов разделителей.
Если строка заключена в двойные кавычки ("), переменные в строке будут раскрываться (в соответствии с некоторыми ограничениями синтаксического разбора). Как и в C и Perl, при указании специальных символов может использоваться обратный слеш ("\"):


Таблица 6-1 . Символы, кодируемые с использованием обратного слеша

Последовательность Значение
\n перевод строки (LF или 0x0A в кодировке ASCII)
\r возврат каретки (CR или 0x0D в кодировке ASCII)
\t горизонтальная табуляция (HT или 0x09 в кодировке ASCII)
\\ обратный слеш
\$ знак доллара
\" двойная кавычка
\{1,3} последовательность символов, соответствующая регулярному выражению, является символом в восьмеричной нотации
\x{1,2} последовательность символов, соответствующая регулярному выражению, является символом в шестнадцатеричной нотации

Если Вы попытаетесь представить таким образом другой символ, выведены будут и обратный слеш, и сам символ. В PHP 3 при этом будет выдано предупреждение на уровне E_NOTICE. В PHP 4 предупреждающее сообщение не генерируется.
Второй способ отделения строк - использование одиночных кавычек ("""). Если строка заключается в одинарные кавычки, в ней можно использовать только символы "\\" и "\"". Таикм образом Вы смоежет указывать одинарные кавычки и обратные слеши в строка, отделенной одинарными кавычками. Переменные в строке, отделенной одинарными кавычкамИ, разворачиваться не будут.
Еще один способ разделения строк - с помощью синтаксиса документов ("