Как разделяются инструкции в языке php. Синтаксис PHP. Переменные, константы и операторы

Общие понятия

Язык PHP специально предназначен для веб-программирования. PHP сочетает достоинства языков C и Perl и при этом весьма прост в изучении и обладает значительными преимуществами перед традиционными языками программирования.

Синтаксис PHP очень напоминает синтаксис языка C и во многом заимствован из таких языков как Java и Perl.

Программист С очень быстро освоит язык PHP и сможет использовать его с максимальной эффективностью.
В принципе, в PHP есть практически все операторы и функции , имеющиеся в стандартном GNU С (или их аналоги), например есть циклы (while, for), операторы выбора (if, switch), функции работы с файловой системой и процессами (fopen, *dir, stat, unlink, popen, exec), функции ввода-вывода (fgets,fputs,printf) и множество других...

Цель данного раздела - краткое ознакомление с основами синтаксиса языка PHP. Более подробную информацию по конкретным составляющим синтаксиса PHP вы найдете в соответствующих разделах.

PHP и HTML

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



Пример




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

Обратите внимание, что HTML-код корректно обрабатывается интерпретатором PHP.

Начало сценария вас может озадачить: разве это сценарий? Откуда HTML-тэги и ? Вот тут-то и кроется главная особенность (кстати, чрезвычайно удобная) языка PHP: PHP-скрипт может вообще не отличаться от обычного HTML-документа.

Идем дальше. Вы, наверное, догадались, что сам код сценария начинается после открывающего тэга . Итак, между этими двумя тэгами текст интерпретируется как программа, и в HTML-документ не попадает. Если же программе нужно что-то вывести, она должна воспользоваться оператором echo.

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

Разделение инструкций

Инструкции разделяются также как и в C или Perl - каждое выражение заканчивается точкой с запятой.

Закрывающий тег (?>) также подразумевает конец инструкции, поэтому два следующих фрагмента кода эквиваленты:



Комментарии в PHP скриптах

Написание практически любого скрипта не обходится без комментариев.

PHP поддерживает комметарии в стиле "C", "C++" и оболочки Unix. Например:

Однострочные комментарии идут только до конца строки или текущего блока PHP-кода, в зависимости от того, что идет перед ними.

Это пример.

Заголовок вверху выведет "Это пример".

Будьте внимательны, следите за отсутствием вложенных "C"-комментариев, они могут появиться во время комментирования больших блоков:

Однострочные комментарии идут только до конца строки или текущего блока PHP-кода, в зависимости от того, что идет перед ними. Это означает, что HTML-код после // ?> БУДЕТ напечатан: ?> выводит из режима PHP и возвращает в режим HTML, но // не позволяет этого сделать.

Переменные в PHP

Имена переменных обозначаются знаком $ . То же самое "Привет, я - скрипт PHP! " можно получить следующим образом:

Типы данных в PHP

PHP поддерживает восемь простых типов данных:

Четыре скалярных типа:

Boolean (двоичные данные)
- integer (целые числа)
- float (числа с плавающей точкой или "double")
- string (строки)

Два смешанных типа:

Array (массивы)
- object (объекты)

И два специальных типа:

resource (ресурсы)
NULL ("пустые")

Существуют также несколько псевдотипов:

Mixed (смешанные)
- number (числа)
- callback (обратного вызова)

Подробно о типах данных в PHP

Выражения в PHP

Основными формами выражений являются константы и переменные. Например, если вы записываете "$a = 100", вы присваиваете "100" переменной $a:

В приведенном примере $a - это переменная, = - это оператор присваивания, а 100 - это и есть выражения. Его значение 100.

Выражением может быть и переменная, если ей сопоставлено определенное значение:

$x = 7;
$y = $x;

В первой строке рассмотренного примера выражением является константа 7, а во второй строке - переменная $x, т.к. ранее ей было присвоено значение 7. $y = $x также является выражением.

Подробно о выражениях в PHP вы найдете

Операторы PHP

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

Примеры операторов PHP:

Операторы присвоения:

Комбинированные операторы:

Строковые операторы:

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

Подробную информацию по операторам PHP вы найдете .

Управляющие конструкции языка PHP

Основными конструкциями языка PHP являются:

  • Условные операторы (if, else);
  • Циклы (while, do-while, for, foreach, break, continue);
  • Конструкции выбора (switch);
  • Конструкции объявления (declare);
  • Конструкции возврата значений (return);
  • Конструкции включений (require, include).
  • Примеры конструкций языка PHP:

    Приведенный пример наглядно показывает использование конструкции if совместно с оператором сравнения ($a > $b).

    В следующем примере если переменная $a не равна нулю, будет выведена строка "значение a истинно (true), то есть показано взаимодействие условного оператора (конструкции) if с логическим оператором:

    А вот пример цикла while:

    Информацию по всем управляющим конструкциям PHP вы можете получить

    Пользовательские функции в PHP

    В любом языке программирования существуют подпрограммы. В языке C они называются функциями, в ассемблере - подпрограммами, а в Pascal существуют два вида подпрограмм: процедуры и функции.

    В PHP такими подпрограммами являются.

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

    Приведем пример пользовательской функции на PHP:

    Сценарий выводит 100:

    Пользовательским функциям в PHP можно передавать аргументы и получать возвращаемые функциями значения.

    Подробную информацию по пользовательским функциям PHP вы найдете

    Встроенные (стандартные) функции PHP

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

    ООП и PHP

    PHP имеет достаточно хорошую поддержку объектно-ориентированного программирования (ООП).

    В PHP можно создавать классы различных уровней, объекты и достаточно гибко ими оперировать.

    Вот пример PHP класса и его использования:

    , между которыми идет код php. Данные теги служат указанием интерпретатору, что их содержимое надо интерпретировать как код php, а не разметку html.

    Также можно использовать краткую версию тегов: . Для этого в файле php.ini надо изменить значение short_open_tag = Off на short_open_tag = On

    Рассмотрим простейший скрипт на php:

    Веб-сайт

    После обработки файла интерпретатор сформирует следующую разметку:

    Веб-сайт

    Привет мир!

    2 + 2 = 4

    Здесь использованы две инструкции echo "

    Привет мир!

    " и echo "2 + 2 = " . (2+2) , который выводят определенное значение на страницу. Каждая отдельная инструкция в PHP завершается точкой с запятой.

    Теги PHP

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

    парсером PHP.

    PHP также допускает короткие теги , однако использовать их нежелательно, так как они доступны только если включены с помощью конфигурационной директивы php.inishort_open_tag , либо если PHP был сконфигурирован с опцией --enable-short-tags .

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

    Изолирование от HTML

    Все, что находится вне пары открывающегося и закрывающегося тегов,

    игнорируется интерпретатором PHP, у которого есть возможность обрабатывать файлы со смешанным содержимым. Это позволяет PHP-коду быть встроенным в документы HTML, к примеру, для создания шаблонов.

    Это будет проигнорировано PHP и отображено браузером.

    Это тоже будет проигнорировано PHP и отображено браузером.

    Это работает так, как и ожидается, потому что когда интерпретатор PHP встречает закрывающие теги?>, он просто начинает выводить все что найдет пока не встретит другой открывающий тег за исключением случая с содержащимся внутри кода условным оператором, в котором интерпретатор определяет результат условия перед принятием решения что пропустить.

    Использование структур с условиями

    Это будет отображено, если выражение истинно. В ином случае будет отображено это.

    Пример №1 Продвинутое изолирование с использованием условий

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

    При выводе больших блоков текста выход из режима синтаксического разбора PHP обычно более эффективен, чем отправка текста с помощью функций echo илиprint .

    Существует четыре набора тегов, которые могут быть использованы для обозначения PHP-кода. Из них только два и ) всегда доступны. Другими двумя являются короткие теги и теги в стиле ASP, которые могут быть включены или выключены в конфигурационном файлеphp.ini. Хотя короткие теги и теги в стиле ASP могут быть удобны, они не так переносимы, как длинные версии, и поэтому не рекомендуются. Кроме того, если вы намереваетесь вставлять PHP-код в XML или XHTML, чтобы соответствовать XML стандартам, вам следует использовать форму .

    1. 2. echo "некоторые редакторы (например, FrontPage) не любят инструкции обработки"; 3. Это синоним для "" 4.

    Короткие теги (третий пример) доступны, только когда они включены с помощью директивы short_open_tag в конфигурационном файлеphp.ini , либо если PHP был скомпилирован с опцией--enable-short-tags .

    Теги в стиле ASP (четвертый пример) доступны, только когда они включены с помощью директивы asp_tags в конфигурационном файлеphp.ini.

    Замечание:

    Следует избегать использования коротких тегов при разработке приложений или библиотек, предназначенных для распространения или размещения на PHP-серверах, не находящихся под вашим контролем, так как короткие теги могут не поддерживаться на целевом сервере. Для создания переносимого, совместимого кода, не используйте короткие теги.

    Разделение инструкций

    Как в C или Perl, PHP требует окончания инструкций точкой запятой в конце каждой инструкции. Закрывающий тег блока PHP-кода автоматически применяет точку с запятой; т.е. нет необходимости ставить точку с запятой в конце последней строки блока с PHP-кодом. Закрывающий тег блока "поглотит" немедленно следующий за ним переход на новую строку, если таковой будет обнаружен.

    Однострочные комментарии идут только до конца строки или текущего блока PHP-кода, в зависимости от того, что идет перед ними. Это означает, что HTML-код после // ... ?> или # ... ?> будет напечатан:?> завершает режим PHP и возвращает режим HTML, а // или # не могут повлиять на это. Если включена директива asp_tags , то аналогичное поведение будет и с // %> и # %> . Однако, тег не завершает режим PHP в однострочном комментарии.

    Это пример

    Заголовок вверху выведет "Это пример".

    "C"-комментарии заканчиваются при первой же обнаруженной последовательности */ . Убедитесь, что вы не вкладываете друг в друга "C"-комментарии. Очень легко допустить эту ошибку при комментировании большого блока кода.

    Операторы: сравнения

    $a == $b // TRUE если $a равно $b.

    $a === $b // TRUE если $a равно $b И имеет тот

    же тип

    $a != $b // TRUE если $a не равно $b.

    $a !== $b // TRUE если $a не равно $b ИЛИ в

    случае, если они разных типов.

    $a < $b // TRUE если $a строго меньше $b.

    $a > $b // TRUE если $a строго больше $b.

    $a = $b // TRUE если $a больше или равно $b.

    Операторы: логические

    $a and $b // TRUE если и $a, и $b TRUE.

    $a or $b // TRUE если или $a, или $b

    ! $a // TRUE если $a не TRUE.

    $a && $b // TRUE если и $a, и $b TRUE.

    $a || $b // TRUE если или $a, или $b

    $a and $b and $c; $a and $b or $c

    $a and ($b and $c ) $a and $b && $c

    $a and ($b or $c ) $a and $b || $c

    Типы данных

    PHP поддерживает восемь простых типов.

    Четыре скалярных типа :

      float(число с плавающей точкой, также известное какdouble)

    Два смешанных типа :

    Два специальных типа:

    Как правило, программист не устанавливает тип переменной; обычно это делает PHP во время выполнения программы в зависимости от контекста, в котором используется переменная.

    Замечание:

    Если вы желаете проверить тип и значение определённого выражения, используйте var_dump() .

    Если же вам для отладки необходимо просто удобочитаемое представление типа, используйте gettype() . Чтобы проверить на определенный тип, не используйте gettype() , применяйте для этого is_type функции.

    Если вы хотите принудительно изменить тип переменной, вы можете либо привестипеременную, либо использовать функциюsettype() .

    Обратите внимание, что переменная, в зависимости от ее типа в данный момент, в определённых ситуациях может иметь разные значения.

    Булев тип

    Это простейший тип. boolean выражает истинность значения. Он может быть либо TRUE либо FALSE .

    Для указания boolean, используйте ключевое слово TRUE или FALSE. Оба регистро-независимы.

    Обычно, некоторый операторвозвращает boolean значение, которое потом передается управляющей конструкции.

    Для явного преобразования в boolean , используйте (bool) или (boolean) . Однако, в большинстве случаев приведение типа необязательно, так как значение будет автоматически преобразовано, если оператор, функция или управляющая конструкция требует boolean аргумент.

    При преобразовании в boolean , следующие значения рассматриваются как FALSE :

      само значение booleanFALSE

      integer0 (ноль)

      float0.0 (ноль)

      пустая строка, истрока"0"

      массивбез элементов

      объектбез полей (только для PHP 4)

      особый тип NULL(включая неустановленные переменные)

      Объекты SimpleXML, созданные из пустых тегов

    Все остальные значения рассматриваются как TRUE (включая любой resource а также число -1).

    Целые числа

    Integer- это число из множества ℤ = {..., -2, -1, 0, 1, 2, ...}.

    Целые могут быть указаны в десятичной, шестнадцатеричной или восьмеричной системе счисления, по желанию с предшествующим знаком (- или +).

    Если вы используете восьмеричную систему счисления, вы должны предварить число 0 (нулем), для использования шестнадцатеричной системы нужно поставить перед числом 0x.

    Пример №1 Целые

    Размер целого зависит от платформы, хотя, как правило, максимальное значение около двух миллиардов (это 32-битное знаковое). PHP не поддерживает беззнаковые целые.

    Превышение размера целого

    Если вы определите число, превышающее пределы целого типа, оно будет интерпретировано как число с плавающей точкой. Также, если вы используете оператор, результатом работы которого будет число, превышающее пределы целого, вместо него будет возвращено число с плавающей точкой.

    В PHP не существует оператора деления целых. Результатом 1/2 будет число с плавающей точкой0.5 . Вы можете привести значение к целому, что всегда округляет его в меньшую сторону, либо использовать функциюround() .

    Числа с плавающей точкой

    Числа с плавающей точкой (они же числа двойной точности или действительные числа) могут быть определены при помощи любого из следующих синтаксисов:

    Строка - это набор символов. В PHP символ это то же самое, что и байт, это значит, что возможно ровно 256 различных символов. Это также означает, что PHP не имеет встроенной поддержки Unicode"а. Некоторую поддержку Unicode"а обеспечивают функции utf8_encode()иutf8_decode().

    Замечание:

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

    Строка может быть определена тремя различными способами.

      одинарными кавычками

      двойными кавычками

      В каком случае выполняется блок действий цикла
      for (expr1; expr2; expr3) {
      // блок действий
      }

      √ если второе выражение (expr2) вычисляется как true
      если первое выражение (expr1) вычисляется как true
      если третье выражение (expr3) вычисляется как true

      Вывести на экран все элементы массива $arr = array(4,3,2,1);?
      √ foreach ($arr as $a) echo «$a «;

      for ($i=1; $i

      Дан массив $arr. Вывести на экран четвертый элемент массива, если он эквивалентен строке «4».

      Дана команда :
      if ($var) echo «Hello»;
      else echo «Bye»;
      В каком случае на экран будет выведено слово «Bye»?

      √ если $var === false
      если $var == «true»
      √ если $var == «»

      Дана команда: if(!$var) echo «Hello»; В каком случае на экран будет выведено слово «Hello»?
      если $var == true
      √ если $var преобразуется к логическому false
      √ если $var = 0

      Для чего может использоваться PHP?
      для создания операционных систем
      √ для создания скриптов, выполняющихся в командной строке
      √ для создания клиентских GUI-приложений

      Для чего не может использоваться PHP?
      √ для создания операционных систем
      для создания скриптов, выполняющихся в командной строке
      для создания клиентских GUI-приложений

      Известно, что настройки PHP можно сохранять/изменять не только в php.ini, но и в самих PHP скриптах, в файлах.htaccess и в файле настроек сервера httpd.conf. Где можно установить значение опции register_globals?
      в скрипте пользователя
      в php.ini, в скрипте пользователя или в файле.htaccess
      √ в php.ini, в файле.htaccess или в httpd.conf

      Известно, что настройки PHP можно сохранять/изменять не только в php.ini, но и в самих PHP скриптах, в файлах.htaccess и в файле настроек сервера httpd.conf. Где можно установить значение опции session.auto_start?
      √ в скрипте пользователя
      √ в php.ini или httpd.conf
      √ в файле.htaccess

      Известно, что настройки PHP можно сохранять/изменять не только в php.ini, но и в самих PHP скриптах, в файлах.htaccess и в файле настроек сервера httpd.conf. Где можно установить значение опции user_dir?
      в скрипте пользователя
      √ только в php.ini или httpd.conf
      в файле.htaccess

      Как встраивается PHP в HTML-код?
      √ с помощью тегов ‘’
      √ с помощью тегов ‘’
      с помощью тегов ‘’

      Как задаются комментарии в языке PHP?
      √ // строка комментариев
      √ /* несколько строк комментариев */
      / несколько строк комментариев /
      ** строка комментариев **

      Как можно задать массив в языке PHP?
      √ $arr = array(«a»,»b»,»c»);
      √ $arr = «a»;
      $arr («0″=> «a»);
      $arr[«a»,»b»,»c»] = «q»;

      Как можно задать строку в языке PHP?
      √ с помощью двойных кавычек: $var = «это строка»;
      с помощью открывающего символа ‘’:
      $var = >;
      √ с помощью одинарных кавычек: $var = ‘это строка’;
      √ heredoc-синтаксисом:
      $var =