Изучение основных правил синтаксиса php. 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, так что нет абсолютно никаких причин беспокоиться об их длине.

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

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

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

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

    Язык PHP был создан для решения конкретной практической задачи в среде интернет (какой именно можно узнать, прочитав первую лекцию курса). Мы тоже постараемся не отвлекаться слишком сильно на теоретические рассуждения, и будем стремиться к решению какой-нибудь конкретной задачи в каждой из лекций. Большинство примеров взяты из реально существующей системы: виртуального музея истории информатики. Первая часть курса посвящена изучению основ синтаксиса и управляющим конструкциям. После этого рассматривается технология клиент-сервер, как основная сфера приложения языка PHP. Затем переходим к изучению наиболее полезных на наш взгляд встроенных функций и решению с их помощью практических задач. Хотя объектная модель в языке PHP не самая богатая, ее принципиальное наличие позволяет естественным образом описывать объектные модели данных. В качестве базовой модели будет рассмотрена модель документа виртуального музея информатики. После этого будет рассмотрен ряд прикладных аспектов: работа с файловой системой, с БД, строками, сессиями, DOM XML - все это позволит рассмотреть ключевые задачи практического использования языка.

    Книга: Основы синтаксиса

    Основы синтаксиса

    Мы приступаем к изучению основных элементов синтаксиса языка PHP. Рассмотрим способы разделения инструкций и создания комментариев, переменные, константы, типы данных и операторы.

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

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

    Основной синтаксис

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

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

    Программа на PHP (да и на любом другом языке программирования) – это набор команд (инструкций). Обработчику программы (парсеру) необходимо как-то отличать одну команду от другой. Для этого используются специальные символы – разделители. В PHP инструкции разделяются так же, как и в Cи или Perl, – каждое выражение заканчивается точкой с запятой.

    Закрывающий тег «?>» также подразумевает конец инструкции, поэтому перед ним точку с запятой не ставят. Например, два следующих фрагмента кода эквивалентны:



    Комментарии

    Часто при написании программ возникает необходимость делать какие-либо комментарии к коду, которые никак не влияют на сам код, а только поясняют его. Это важно при создании больших программ и в случае, если несколько человек работают над одной программой. При наличии комментариев в программе в ее коде разобраться гораздо проще. Кроме того, если решать задачу по частям, недоделанные части решения также удобно комментировать, чтобы не забыть о них в дальнейшем. Во всех языках программирования предусмотрена возможность включать комментарии в код программы. PHP поддерживает несколько видов комментариев: в стиле Cи, C++ и оболочки Unix. Символы // и # обозначают начало однострочных комментариев, /* и */ – соответственно начало и конец многострочных комментариев.

    Переменные, константы и операторы

    Важным элементом каждого языка являются переменные, константы и операторы, применяемые к этим переменным и константам. Рассмотрим, как выделяются и обрабатываются эти элементы в PHP.

    Переменные

    Переменная в PHP обозначается знаком доллара, за которым следует ее имя. Например:

    Имя переменной чувствительно к регистру, т.е. переменные $my_var и $My_var различны.

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

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

    Результат работы этого скрипта будет следующим:

    Переменная с именем first равна New text
    Переменная с именем second равна Text

    PHP 4, кроме этого, предлагает еще один способ присвоения значений переменным: присвоение по ссылке. Для того чтобы присвоить значение переменной по ссылке, это значение должно иметь имя, т.е. оно должно быть представлено какой-либо переменной. Чтобы указать, что значение одной переменной присваивается другой переменной по ссылке, нужно перед именем первой переменной поставить знак амперсанд &.

    Рассмотрим тот же пример, что и выше, только будем присваивать значение переменной first переменной second по ссылке:

    Этот скрипт выведет следующее:

    Переменная с именем first равна New text.
    Переменная с именем second равна New text.

    То есть вместе с переменной $first изменилась и переменная $second.

    Константы

    Для хранения постоянных величин, т.е. таких величин, значение которых не меняется в ходе выполнения скрипта, используются константы. Такими величинами могут быть математические константы, пароли, пути к файлам и т.п. Основное отличие константы от переменной состоит в том, что ей нельзя присвоить значение больше одного раза и ее значение нельзя аннулировать после ее объявления. Кроме того, у константы нет приставки в виде знака доллара и ее нельзя определить простым присваиванием значения. Как же тогда можно определить константу? Для этого существует специальная функция define(). Ее синтаксис таков:

    define("Имя_константы",
    "Значение_константы",
    [Нечувствительность_к_регистру])

    По умолчанию имена констант чувствительны к регистру. Для каждой константы это можно изменить, указав в качестве значения аргумента Нечувствительность_к_регистру значение True. Существует соглашение, по которому имена констант всегда пишутся в верхнем регистре.

    Получить значение константы можно, указав ее имя. В отличие от переменных, не нужно предварять имя константы символом $. Кроме того, для получения значения константы можно использовать функцию constant() с именем константы в качестве параметра.

    Кроме переменных, объявляемых пользователем, о которых мы только что рассказали, в PHP существует ряд констант, определяемых самим интерпретатором. Например, константа __FILE__ хранит имя файла программы (и путь к нему), которая выполняется в данный момент, __FUNCTION__ содержит имя функции, __CLASS__ – имя класса, PHP_VERSION – версия интерпретатора PHP. Полный список предопределенных констант можно получить, прочитав руководство по PHP.

    Операторы

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

    Сложение

    Вычитание

    Умножение

    Остаток от деления

    Конкатенация (сложение строк)

    (это строка, состоящая из $a и $b)

    Присваивание

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

    $a = ($b = 4) +5;

    ($a будет равна 9, $b будет равна 4)

    Сокращение. Прибавляет к переменной число и затем присваивает ей полученное значение

    (эквивалентно $a = $a + 5;)

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

    $b = "Привет ";
    $b .= "всем";

    В результате: $b="Привет всем"

    $a и $b истинны (True)

    Хотя бы одна из переменных $a или $b истинна (возможно, что и обе)

    Исключающее или

    Одна из переменных истинна. Случай, когда они обе истинны, исключается

    Инверсия (NOT)

    Если $a=True, то!$a=False и наоборот

    Равенство

    Значения переменных равны

    Эквивалентность

    Равны значения и типы переменных

    Неравенство

    Значения переменных не равны

    Неравенство

    Неэквивалентность

    Переменные не эквивалентны

    Меньше или равно

    Больше или равно

    Пре-инкремент

    Увеличивает $a на единицу и возвращает $a

    Пост-инкремент

    Возвращает $a, затем увеличивает $a на единицу

    Пре-декремент

    Уменьшает $a на единицу и возвращает $a

    Пост-декремент

    Возвращает $a, затем уменьшает $a на единицу

    Типы данных

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

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

    Boolean (логический);

    Integer (целый);

    Float (с плавающей точкой);

    String (строковый).

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

    Array (массив);

    Object (объект).

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

    Resource (ресурс);

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

    Тип boolean (булев или логический тип)

    Этот простейший тип выражает истинность значения, то есть переменная этого типа может иметь только два значения – истина TRUE или ложь FALSE.

    Чтобы определить булев тип, используют ключевое слово TRUE или FALSE. Оба регистронезависимы.

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

    Тип integer (целые)

    Этот тип задает число из множества целых чисел Z = {..., -2, -1, 0, 1, 2, ...}. Целые могут быть указаны в десятичной, шестнадцатеричной или восьмеричной системе счисления, по желанию с предшествующим знаком «-» или «+».

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

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

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

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

    Тип float (числа с плавающей точкой)

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

    Размер числа с плавающей точкой зависит от платформы, хотя максимум, как правило, ~1.8e308 с точностью около 14 десятичных цифр.

    Тип string (строки)

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

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

    С помощью одинарных кавычек;

    С помощью двойных кавычек;

    Heredoc-синтаксисом.

    Одинарные кавычки

    Простейший способ определить строку – это заключить ее в одинарные кавычки «"». Чтобы использовать одинарную кавычку внутри строки, как и во многих других языках, перед ней необходимо поставить символ обратной косой черты «», т. е. экранировать ее. Если обратная косая черта должна идти перед одинарной кавычкой либо быть в конце строки, необходимо продублировать ее «"».

    Если внутри строки, заключенной в одинарные кавычки, обратный слэш «» встречается перед любым другим символом (отличным от «» и «"»), то он рассматривается как обычный символ и выводится, как и все остальные. Поэтому обратную косую черту необходимо экранировать, только если она находится в конце строки, перед закрывающей кавычкой.

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

    Двойные кавычки

    Если строка заключена в двойные кавычки «"», PHP распознает большее количество управляющих последовательностей для специальных символов. Некоторые из них приведены в таблице 2.7.

    Новая строка (LF или 0x0A (10) в ASCII)

    Возврат каретки (CR или 0x0D (13) в ASCII)

    Горизонтальная табуляция (HT или 0x09 (9) в ASCII)

    Обратная косая черта

    Знак доллара

    Двойная кавычка

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

    Самым важным свойством строк в двойных кавычках является обработка переменных.

    Другой способ определения строк – это использование heredoc-синтаксиса. В этом случае строка должна начинаться с символа

    Замечание: Поддержка heredoc была добавлена в PHP 4.

    Тип array (массив)

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

    Определить массив можно с помощью конструкции array() или непосредственно задавая значения его элементам.

    Определение при помощи array()

    array ( => value,
    => value1, ...)

    Языковая конструкция array() принимает в качестве параметров пары ключ => значение, разделенные запятыми. Символ => устанавливает соответствие между значением и его ключом. Ключ может быть как целым числом, так и строкой, а значение может быть любого имеющегося в PHP типа. Числовой ключ массива часто называют индексом. Индексирование массива в PHP начинается с нуля. Значение элемента массива можно получить, указав после имени массива в квадратных скобках ключ искомого элемента. Если ключ массива представляет собой стандартную запись целого числа, то он рассматривается как число, в противном случае – как строка. Поэтому запись $a["1"] равносильна записи $a, так же как и $a["-1"] равносильно $a[-1].

    Если для элемента ключ не задан, то в качестве ключа берется максимальный числовой ключ, увеличенный на единицу. Если указать ключ, которому уже было присвоено какое-то значение, то оно будет перезаписано. Начиная с PHP 4.3.0, если максимальный ключ – отрицательное число, то следующим ключом массива будет ноль (0).

    Если использовать в качестве ключа TRUE или FALSE, то его значение переводится соответственно в единицу и ноль типа integer. Если использовать NULL, то вместо ключа получим пустую строку. Можно использовать и саму пустую строку в качестве ключа, при этом ее надо брать в кавычки. Так что это не то же самое, что использование пустых квадратных скобок. Нельзя использовать в качестве ключа массивы и объекты.

    Определение с помощью синтаксиса квадратных скобок

    Создать массив можно, просто записывая в него значения. Как мы уже говорили, значение элемента массива можно получить с помощью квадратных скобок, внутри которых нужно указать его ключ например, $book["php"]. Если указать новый ключ и новое значение например, $book["new_key"]="new_value", то в массив добавится новый элемент. Если мы не укажем ключ, а только присвоим значение $book="new_value", то новый элемент массива будет иметь числовой ключ, на единицу больший максимального существующего. Если массив, в который мы добавляем значения, еще не существует, то он будет создан.

    Для того чтобы изменить конкретный элемент массива, нужно просто присвоить ему с его ключом новое значение. Изменить ключ элемента нельзя, можно только удалить элемент (пару ключ/значение) и добавить новую. Чтобы удалить элемент массива, нужно использовать функцию unset().

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


    ___________

    ошибка синтаксиса
    √ -+!
    +-!
    бесконечный цикл

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

    ____________

    ошибка синтаксиса
    -+!
    +-!
    √ бесконечный цикл

    Какой оператор обозначает равенство значений в языке PHP?
    ===
    √ ==
    =
    :=

    Когда вычисляется значение первого (expr1) и второго (expr2) выражений в цикле
    for (expr1; expr2; expr3) {
    // блок действий
    }

    expr1 – один раз в начале цикла, expr2 – один раз после завершения всех итераций цикла

    expr1 – каждый раз в начале очередной итерации цикла, expr2 – каждый раз в конце итерации цикла

    √ expr1 – один раз в начале цикла, expr2 – каждый раз в конце итерации цикла

    Написать программу, которая выводит «жирными» буквами (тег ) строку «Добро пожаловать!» с использованием языка PHP.


    Отметьте скалярные типы данных, которые имеются в языке PHP?
    √ string
    text
    √ boolean
    resource
    √ float

    С помощью какого оператора можно выполнять разные действия в зависимости от условия?
    √ if
    for
    √ switch

    С помощью какой конструкции можно выполнять периодически блок действий до тех пор, пока верно условие?
    √ c помощью цикла while
    c помощью условного оператора if
    √ c помощью цикла for

    Чем отличается оператор break от оператора continue?
    √ break заканчивает выполнение текущего цикла, а continue – текущей итерации цикла

    break используется для принудительной остановки циклов, а continue – для условных операторов

    continue не может быть вызван с дополнительным числовым аргументом, а break – может

    Чем отличается скрипт на языке PHP от скрипта на языке JavaScript?
    ничем не отличаются
    способом встраивания в HTML-код
    √ скрипт на языке JavaScript обрабатывается клиентом, а PHP-скрипт – сервером

    Чем отличаются операторы require и include?
    ничем
    √ в случае возникновения ошибки include выдает предупреждение, а require – фатальную ошибку
    require нельзя использовать внутри циклов, а include – можно

    Чем цикл while отличается от цикла do..while?
    ничем
    √ блок действий цикла do..while гарантированно выполняется один раз
    while выполняет блок действий только один раз

    Чему будет равна переменная $result в результате выполнения следующей программы
    $value = array(«0″,»»,»1″);
    foreach ($value as $v) {
    if (!$v) $result = true;
    else $result = false;
    }
    ?>

    √ Array( => true => true => false)
    Array( =>true =>true => true)
    false, false, true

    Что мы получим в результате обработки интерпретатором файла index.php?
    7. Файл vars.php:

    Файл index.php:

    ________
    12
    123
    1234
    √ 111

    Файл
    Файл vars.php:

    Файл index.php:

    __________
    √ 123
    0
    1
    ошибку

    Файл index . php :
    ________
    123
    √ 000
    1
    Ошибку

    Что нужно сделать для того, чтобы настроить PHP для работы с сервером Apache (PHP устанавливается как серверный модуль)?
    добавить в httpd.conf строки:


    AddModule mod_php4.c

    √ установить в php.ini переменные doc_root, user_dir и extension_dir и добавить в httpd.conf строки:
    LoadModule php4_module c:/php/sapi/php4apache.dll
    AddType application/x-httpd-php .php .phtml
    AddModule mod_php4.c

    установить в php.ini переменные doc_root, user_dir и extension_dir и добавить в httpd.conf строки:
    ScriptAlias /php/ «c:/php/»
    AddType application/x-httpd-php .php .phtml
    Action application/x-httpd-php «/php/php.exe»

    Что нужно сделать, чтобы получить в браузере строку: «PHP работает: привет»
    Вы создали php файл вида:
    PHP работает:

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

    Что такое корень сервера Apache и где он находится по умолчанию (для windows систем)?
    √ корень сервера это директория, файлы которой обрабатываются сервером. Для windows систем он находится в «C:/Program Files/Apache Group/Apache/htdocs»

    это директория, в которой находятся все PHP скрипты сервера. Для windows систем он находится в «C:/Program Files/Apache Group/Apache/htdocs»

    это директория, в которой находятся все документы, которые должен обрабатывать сервер. Для windows систем он находится в «C:/Program Files/Apache Group/Apache/»

    Что такое пользовательская директория сервера и где она находится по умолчанию (для windows систем)?
    √ это директория, выделенная пользователю для личных нужд, файлы которой обрабатываются сервером, если он получает запрос типа ~user. Находится в «C:/Program Files/Apache Group/Apache/users/»

    это директория, выделенная пользователю для личных нужд, файлы которой обрабатываются сервером. Находится в «C:/Program Files/Apache Group/Apache/htdocs/users/»

    это директория, выделенная пользователю для личных нужд, файлы которой никогда не обрабатываются сервером. Находится в «C:/Program Files/Apache Group/Apache/users/»

    это директория, выделенная пользователю для личных нужд, файлы которой обрабатываются сервером, если он получает запрос типа ~user. Находится в «C:/Program Files/Apache Group/Apache/htdocs/users/»

    Лабораторная работа №1: Введение в PHP

    Первая PHP-программа

    Рассмотрим пример.

    Пример

    Пример 1. Простой html-файл со встроенным кодом на РНР

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

    PHP похож на Cи и Perl. Однако приведенная здесь программа сильно отличается от аналогичных по смыслу программ на языках Cи и Perl. Здесь не нужно писать кучу специальных команд для вывода HTML. Пишется непосредственно код на HTML, в который можно встраивать PHP -код, осуществляющий какие-либо действия (например, выводящий текст на экран, как в нашем примере). Недостатком PHP по сравнению с Cи и Perl, несмотря на все усилия разработчиков, все еще является недостаточная быстрота выполнения сложных скриптов.

    PHP-скрипты – это программы, которые выполняются и обрабатываются сервером. Так что сравнивать его со скриптовыми языками типа JavaScript невозможно, потому что написанные на них скрипты выполняются на машине клиента. В чем отличие скриптов, выполняемых на сервере и на клиенте? Если скрипт обрабатывается сервером, клиенту посылаются только результаты работы скрипта. Например, если на сервере выполнялся скрипт, подобный приведенному выше, клиент получит сгенерированную HTML-страницу вида:

    Пример

    Привет, я – скрипт PHP!

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

    Мы отмечали выше, что PHP - скрипты встраиваются в HTML-код. Возникает вопрос, каким образом? Есть несколько способов. Один из них приведен в самом первом примере – с помощью открывающего тега . Такого вида специальные теги позволяют переключаться между режимами HTML и PHP. Этот синтаксис наиболее предпочтителен, поскольку позволяет задействовать PHP в XML -совместимых программах (например, написанных на языке XHTML).

    Когда PHP обрабатывает файл, он просто передает его текст, пока не встретит один из перечисленных специальных тегов, который сообщает ему о необходимости начать интерпретацию текста как кода PHP. Затем он выполняет весь найденный код до закрывающего тега, говорящего интерпретатору, что далее снова идет просто текст. Этот механизм позволяет внедрять PHP -код в HTML – все за пределами тегов PHP остается неизменным, тогда как внутри интерпретируется как код. Заметим также, что php-файл не похож на CGI-скрипт. Php файл не должен быть исполнимым или еще каким-либо образом помеченным.


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

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

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

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

    Программа на PHP (да и на любом другом языке программирования) – это набор команд (инструкций). Обработчику программы (парсеру) необходимо как-то отличать одну команду от другой. Для этого используются специальные символы – разделители. В PHP инструкции разделяются так же, как и в Cи или Perl, – каждое выражение заканчивается точкой с запятой.

    Закрывающий тег " ?> " также подразумевает конец инструкции, поэтому перед ним точку с запятой не ставят. Например, следующие фрагменты кода эквивалентны: