Введение в PHP
Описание программирования на PHP и тонкости работы с ним. Основы разметки веб-страниц на HTML. Пользовательские функции языка программирования. Принципы построения веб-страниц и требования, предъявляемые к ним. Наследование и полиморфизм классов в PHP.
Рубрика | Программирование, компьютеры и кибернетика |
Вид | реферат |
Язык | русский |
Дата добавления | 09.03.2017 |
Размер файла | 48,7 K |
Отправить свою хорошую работу в базу знаний просто. Используйте форму, расположенную ниже
Студенты, аспиранты, молодые ученые, использующие базу знаний в своей учебе и работе, будут вам очень благодарны.
Размещено на http://www.allbest.ru/
Введение в PHP
1. Первая программа на PHP
Итак, будем считать, что для написания первой программы на PHP у вас все готово: установлен и настроен веб-сервер и интерпретатор PHP. Если нет, то мы вам поможем, чтобы процесс установки и настойки программного обеспечения не был для вас сложным. Прочитайте инструкцию по быстрой и простой установке и настройке web-сервера и PHP.
Если все готово для работы с PHP, то начнем.
Традиционно, знакомство с языком программирования начинают с пресловутой программы "Hello, World!". Что ж, мы не будем отступать от этой традиции, и напишем нашу первую программу на PHP!
Итак, берем редактор PHP-кода (сойдет и простой текстовый редактор), и напишем следующий PHP код:
<?php echo "Hello, World!";?>
Прежде, чем запустить программу, ее нужно установить на сервере. Для этого сохраните написанный PHP скрипт под названием start.php. Затем скопируйте его в каталог DocumentRoot вашего сервера. По умолчанию, в Linux таким каталогом является /var/www/html (в старых версиях Linux - /home/httpd/html/). В Windows расположение каталога зависит от типа установленного web-сервера и его настроек. Теперь наберите в адресной строке вашего браузераhttp://localhost/start.php и, если все установлено и настроено правильно, вы увидите текст Hello, World!
Увидели? Если да, то поздравляем, вы написали первую простейшую программу (скрипт) на PHP!
А теперь разберем код нашего простейшего скрипта.
Код PHP заключается в специальные теги <? и?> Начало скрипта отмечается открывающим тегом <?, а конец -?> После открывающего тега <? следует первый оператор echo, который осуществляет вывод информации на экран. Оператор echo можно назвать самым главным, ведь он выводит информацию в браузер, в результате его работы мы и видим наш Hello, World!
Теперь давайте несколько усложним наш скрипт, добавив в него вывод html-тегов:
<?php echo "<html><body>"; echo "<h1>Hello, World!</h1>"; echo "</body></html>";?>
Наш несколько модифицированный скрипт теперь будет выводить большими буквами текст Hello, World!
Настало время вывести текст на русском языке. Вы, наверняка, спросите, а почему мы сразу не могли вывести текст на русском языке? Ответ заключается в том, что текст на русском языке, без указания определенного заголовка html-документа, может быть выведен некорректно. А теперь давайте, наконец, изменим наш скрипт так, чтобы он мог приветствовать нас на русском языке:
<?php echo "<html><head>"; echo '<meta http-equiv="Content-Type" content="text/html; charset=windows-1251">'; echo "<title>Моя первый PHP скрипт</title>"; echo "</head>"; echo "<body>"; echo "<h1>Привет! Я PHP скрипт!</h1>"; echo "</body>"; echo "</html>";?>
Будьте внимательны, во второй строке кода html-код заключен в апострофы, а не в кавычки! Этим мы даем интерпретатору понять, что оператор echo должен выводить символы как есть, то есть не разбирая код в апострофах. А вот строки в кавычках позволяют выводить значения переменных, информацию по которым вы найдете здесь.
В приведенном скрипте мы послали браузеру заголовок <head><meta....></head>, который дает понять браузеру, какую мы будем использовать кодировку для вывода текста html-документа, а также указали текст заголовка браузера: <title>Мой первый PHP скрипт</title>. А затем вывели текст на русском языке: <body><h1>Привет! Я PHP скрипт!</h1></body>.
Вообще, теги можно и не выводить с помощью оператора echo. Мы можем вставлять PHP-код непосредственно в html-содержимое. Но, это тема нашего следующего раздела.
2. PHP в HTML-документах
Если вы рассмотрели предыдущюю страницу, то увидели, что всю информацию, включая html-код, мы выводили с помощью оператора echo. Однако PHP-скрипты можно писать и по-другому. Рассмотрим пример:
<html> <head> <title>Пример</title> </head> <body> <?php echo "Привет, я - скрипт PHP!";?> </body> </html>
Теперь вы можете сохранить приведенный PHP скрипт на сервере в виде файла.php, например start.php и проверить результат.
Html-код будет корректно обрабатываться интерпретатором PHP, поэтому у вас не будут возникать ошибки при выполнении этого скрипта.
Когда PHP обрабатывает файл, он просто передаёт его текст, пока не встретит один из специальных тегов, который сообщает ему о необходимости начать интерпретацию текста как кода PHP. Затем он выполняет весь найденный код до закрывающего тега, говорящего интерпретатору, что далее снова идет просто текст. Этот механизм позволяет вам внедрять PHP-код в HTML - все за пределами тегов PHP остается неизменным, тогда как внутри - интерпретируется как PHP код.
Существует четыре набора тегов, которые могут быть использованы для обозначения PHP-кода. Из них только два (<?php...?> и <script language="php">...</script>) всегда доступны; другие могут быть включены или выключены в конфигурационном файле php.ini. Хотя короткие теги и теги в стиле ASP могут быть удобны, они не так переносимы, как длинные версии. Кроме того, если вы намереваетесь вставлять PHP-код в XML или XHTML, чтобы соответствовать XML, вам следует использовать форму <?php...?>.
Теги, поддерживаемые PHP:
1. <?php echo("если вы хотите работать с документами XHTML или XML, делайте так\n");?> 2. <? echo ("это простейшая инструкция обработки SGML\n");?> <?= выражение?> Это синоним для "<? echo выражение?>" 3. <script language="php"> echo ("некоторые редакторы (например, FrontPage) не любят инструкции обработки"); </script> 4. <% echo ("Вы можете по выбору использовать теги в стиле ASP"); %> <%= $variable; # Это синоним для "<% echo..." %>
Первый способ, <?php...?>, наиболее предпочтительный, так как он позволяет использовать PHP в коде, соответствующем правилам XML, таком как XHTML.
Второй способ не всегда доступен. Короткие теги доступны только когда они включены. Это можно сделать, используя функцию short_tags() (только в PHP 3), включив установку short_open_tag в конфигурационном файле PHP, либо скомпилировав PHP с параметром --enable-short-tags для configure. Даже если оно включено по умолчанию в php.ini-dist, использование коротких тегов не рекомендуется.
Четвертый способ доступен только если теги в стиле ASP были включены, используя конфигурационную установку asp_tags.
Поддержка тегов в стиле ASP была добавлена в версии PHP 3.0.4.
Следует избегать использования коротких тегов при разработке приложений или библиотек, предназначенных для распространения или размещения на PHP-серверах, не находящихся под вашим контролем, так как короткие теги могут не поддерживаться на целевом сервере. Для создания переносимого, совместимого кода, не используйте короткие теги.
Закрывающий тег блока PHP-кода включает сразу следующий за ним перевод строки, если он имеется. Кроме того, закрывающий тег автоматически подразумевает точку с запятой; вам не нужно заканчивать последнюю строку кода в блоке точкой с запятой. Закрывающий тег PHP-блока в конце файла не является обязательным.
PHP позволяет использовать такие структуры:
Профессиональная вставка:
<?php if ($expression) {?> <strong>Это истина.</strong> <?php } else {?> <strong>Это ложь.</strong> <?php }?>
Этот код работает так, как ожидается, потому что когда PHP встречает закрывающие теги?>, он просто выводит все, что он находит до следующего открывающего тега. Приведенный пример более эффективен для вывода больших блоков текста, чем отправка всего текста через echo(), print() или что-либо подобное.
3. Комментарии в PHP-скриптах
Написание практически любой программы не обходится без комментариев.
PHP поддерживает комметарии в стиле 'C', 'C++' и оболочки Unix.
Комментарии в PHP могут быть трех типов:
<?php echo "Это тест"; // Это однострочный комментарий в стиле c++ /* Это многострочный комментарий еще одна строка комментария */ echo "Это еще один тест"; echo "Последний тест"; # Это комментарий в стиле оболочки Unix?>
Однострочные комментарии идут только до конца строки или текущего блока PHP-кода.
<h1>Это <?php # echo "простой";?> пример.</h1> <p>Заголовок вверху выведет 'Это пример'.
Будьте внимательны, следите за отсутствием вложенных 'C'-комментариев, они могут появиться во время комментирования больших блоков:
<?php /* echo "Это тест"; /* Этот комментарий вызовет проблему */ */?>
Однострочные комментарии идут только до конца строки или текущего блока PHP-кода, в зависимости от того, что идет перед ними. Это означает, что HTML-код после //?> БУДЕТ напечатан:?> выводит из режима PHP и возвращает в режим HTML, но // не позволяет этого сделать.
4. Переменные в PHP
Почти в любом языке программирования существует такое понятие, как переменная.
При программировании на PHP можно не скупиться на объявление новых переменных. Принципы экономии памяти, которые были актуальны несколько лет назад, сегодня в расчет не принимаются. Однако, при хранении в переменных больших объемов памяти, лучше удалять неиспользуемые переменные, используя оператор Unset.
Вообще, переменная - это область оперативной памяти, доступ к которой осуществляется по имени. Все данные, с которыми работает программа, хранятся в виде переменных (исключение -- константа, которая, впрочем, может содержать только число или строку). Такого понятия, как указатель (как в Си), в PHP не существует -- при присваивании переменная копируется один-в-один, какую бы сложную структуру она ни имела. Тем не менее, в PHP, начиная с версии 4, существует понятие ссылок -- жестких и символических, их мы вскоре рассмотрим.
Имена всех переменных в PHP должны начинаться со знака $ -- так интерпретатору значительно легче "понять" и отличить их, например, в строках. Имена переменных чувствительны к регистру букв: например, $var -- не то же самое, что $Var или $VAR:
<?php $var = "Bob"; $Var = "Joe"; echo "$var, $Var"; // выведет "Bob, Joe" $4site = 'not yet'; // неверно; начинается с цифры $_4site = 'not yet'; // верно; начинается с символа подчеркивания $tдyte = 'mansikka'; // верно; 'д' это (Дополнительный) ASCII 228.?>
Информацию о способах присвоения переменным PHP значений смотрите в разделе Выражения.
В PHP не нужно ни описывать переменные явно, ни указывать их тип. Интерпретатор все это делает сам. Однако иногда он может ошибаться (например, если в текстовой строке на самом деле задано десятичное число), поэтому изредка возникает необходимость явно указывать, какой же тип имеет то или иное выражение.
Иногда возникает потребность узнать тип переменной (например, переданной в параметрах функции) прямо во время выполнения программы.
Теперь пора узнать, какие типы данных (переменных) поддерживает PHP. Переходите к следующей странице.
$A["Petrov"] = array("name"=>"Петров П.П.", "age"=>"34", "email"=>"petrov@mail.ru"); $A["Sidorov"] = array("name"=>"Сидоров С.С.", "age"=>"47", "email"=>"sidorov@mail.ru");?>
Многомерные массивы похожи на записи в языке Pascal или структуры в языке C.
Подробно о массивах и операциях с массивами вы можете узнать здесь
Тип object (объекты)
Объект является одним из базовых понятий объектно-ориентированного программирования. Внутренняя структура объекта похожа на хэш, за исключением того, что для доступа к отдельным элементам и функциям используется оператор ->, а не квадратные скобки.
Для инициализации объекта используется выражение new, создающее в переменной экземпляр объекта.
<?php class foo { function do_foo() { echo "Doing foo."; } } $bar = new foo; $bar->do_foo();?>
Подробное рассмотрение объектов производится в подразделе Классы и объекты PHP
Тип resource (ресурсы)
Ресурс - это специальная переменная, содержащая ссылку на внешний ресурс. Ресурсы создаются и используются специальными функциями. Полный перечень этих функций и соответствующих типов ресурсов смотрите здесь.
Тип NULL (пустой тип)
Специальное значение NULL говорит о том, что эта переменная не имеет значения. NULL - это единственно возможное значение типа NULL (пустой тип).
Переменная считается NULL если:
ей была присвоена константа NULL;
ей еще не было присвоено какое-либо значение;
она была удалена с помощью unset().
<?php $var = NULL;?>
Смотрите также is_null() и unset().
Псевдотип mixed (смешанный тип)
mixed говорит о том, что параметр может принимать множество (но не обязательно все) типов.
gettype(), например, принимает все типы PHP, тогда как str_replace() принимает строки и массивы.
Псевдотип number (числа)
number говорит о том, что параметр может быть либо integer, либо float.
Псевдотип callback (обратного вызова)
Некоторые функции, такие как call_user_func() или usort() принимают в качестве параметра определенные пользователем callback-функции. Callback-функции могут быть не только простыми функциями, но также методамиобъектов, включая статические методы классов.
PHP-функция передается просто как строка ее имени. Вы можете передать любую встроенную или определенную пользователем функцию за исключением array(), echo(), empty(), eval(), exit(), isset(), list(), print() и unset().
Приведем примеры callback функций:
<?php // простой пример callback function my_callback_function() { echo 'hello world!'; } call_user_func('my_callback_function'); // примеры callback-метода class MyClass { function myCallbackMethod() { echo 'Hello World!'; } } // вызов метода статического класса без создания объекта call_user_func(array('MyClass', 'myCallbackMethod')); // вызов метода объекта $obj = new MyClass(); call_user_func(array(&$obj, 'myCallbackMethod'));?>
Мы рассмотрели достаточно поверхностно типы данных PHP. Для более подробного ознакомления с этим вопросом посетите подраздел "Типы данных PHP".
5. Константы в PHP
Константой называется именованная величина, которая не изменяется в процессе выполнения программы.
В отличие от переменной, вы не можете изменить значение константы, которое было ей присвоено при её объявлении. Константы удобно использовать для хранения значений, которые не должны изменяться во время работы программы. Константы могут содержать только скалярные данные (логического, целого, плавающего и строкового типов).
В РНР константы определяются функцией define(). Эта функция имеет следующий формат:
define ($name, $value, $case_sen), где: $name - имя константы; $value - значение константы; $case_sen - необязательный параметр логического типа, указывающий, следует ли учитывать регистр букв (true) или нет (false).
Пример определения и использования констант в PHP:
<?php define("pi",3.14,true); echo pi; // Выводит 3.14?>
Если параметр $case_sen равен true, то интерпретатор будет учитывать регистр символов при работе с константой. Обратите внимание, что константы используются без предваряющего знака $.
Различия между константами и переменными:
У констант нет приставки в виде знака доллара ($);
Константы можно определить только с помощью функции define(), а не присваиванием значения;
Константы могут быть определены и доступны в любом месте без учета области видимости;
Константы не могут быть определены или аннулированы после первоначального объявления; и
Константы могут иметь только скалярные значения.
Проверка существования констант
Для проверки существования константы можно использовать функцию defined(). Данная функция возвращает true, если константа объявлена. Приведем пример:
<?php // Объявляем константу pi define("pi",3.14,true); if (defined("pi")==true) echo "Константа pi объявлена!"; // Скрипт выведет 'Константа pi объявлена!'?>
Стандартные константы PHP
В PHP существуют следующие предопределенные константы:
PHP предоставляет большой список предопределенных констант для каждого выполняемого скрипта. Многие из этих констант определяются различными модулями и будут присутствовать только в том случае, если эти модули доступны в результате динамической загрузки или в результате статической сборки.
Есть пять предопределенных констант, которые меняют свое значение в зависимости от контекста, в котором они используются. Например, константа __LINE__ зависит от строки в скрипте, на которой эта константа указана. Специальные константы нечувствительны к регистру и их список приведен ниже:
Имя |
Описание |
|
__LINE__ |
Текущая строка в файле. |
|
__FILE__ |
Полный путь и имя текущего файла. |
|
__DIR__ |
The directory of the file. If used inside an include, the directory of the included file is returned. This is equivalent to dirname(__FILE__). This directory name does not have a trailing slash unless it is the root directory. |
|
__FUNCTION__ |
Имя функции. (Добавлена в PHP 4.3.0.) |
|
__CLASS__ |
Имя класса. (Добавлена в PHP 4.3.0.) |
|
__TRAIT__ |
The trait name. The trait name includes the namespace it was declared in (e.g. Foo\Bar). |
|
__METHOD__ |
Имя метода класса. (Добавлена в PHP 5.0.0) |
|
__NAMESPACE__ |
The name of the current namespace. |
6. Выражения в PHP
Выражения - это краеугольный камень PHP. Почти все, что вы пишите в PHP, является выражением. Выражения являются "кирпичиками", из которых состоят PHP-программы. Под выражением в PHP понимается то, что имеет значение.
Основными формами выражений являются константы и переменные. Например, если вы записываете "$a = 100", вы присваиваете '100' переменной $a:
$a = 100;
В приведенном примере $a это переменная, = это оператор присваивания, а 100 это и есть выражения. Его значение 100.
Выражением может быть и переменная, если ей сопоставлено определенное значение:
$x = 7; $y = $x;
В первой строке рассмотренного примера выражением является константа 7, а во второй строке - переменная $x, т.к. ранее ей было присвоено значение 7. $y = $x также является выражением.
Немного более сложными примерами выражений являются функции. Например, рассмотрим следующую функцию:
<?php function funct () { return 5; }?>
Исходя из того, что вы хорошо знакомы с концепцией функций (если нет, то прочитайте раздел о пользовательских функциях), вы полагаете, что запись $x = funct() абсолютно эквивалента записи $x = 5, и вы правы. Функции - это выражения, значением которых является то, что возвращает функция. Поскольку funct() возвращает 5, значением выражения 'funct()' является 5. Как правило, функции возвращают не статическое значение, а вычисленное.
PHP поддерживает три типа скалярных значений: целочисленные, с плавающей точкой и строковые значения (скалярными являются значения, которые вы не можете 'разбить' на меньшие части, в отличие, например, от массивов). PHP поддерживает также два комбинированных (не скалярных) типа: массивы и объекты. Каждый из этих типов значений может присваиваться переменной или возвращаться функцией.
PHP - это язык, ориентированный на выражения и рассматривающий почти все как выражение. Вернемся к примеру, с которым мы уже имели дело: '$x = 7'. Легко заметить, что здесь присутствуют два значения - значение целочисленной константы '7' и значение переменной $x, также принимающей значение 7. Но на самом деле здесь присутствует и еще одно значение - значение самого присвоения. Само присвоение вычисляется в присвоенное значение, в данном случае - в 7.
На практике это означает, что '$x = 7', независимо от того, что оно делает, является выражением со значением 7. Таким образом, запись '$y = ($x = 7)' равносильна записи '$x = 7; $y = 7;'. Поскольку операции присвоения анализируются справа налево, вы также можете написать '$y = $x = 7'.
Выражения в PHP связаны с арифметическими операциями, с которыми вы можете ознакомиться далее.
8. Операторы PHP
Оператором называется нечто, состоящее из одного или более значений (выражений, если говорить на жаргоне программирования), которое можно вычислить как новое значение (таким образом, вся конструкция может рассматриваться как выражение). Отсюда следует, что функции или любые другие конструкции, которые возвращают значение (например, print()) являются операторами, в отличие от всех остальных языковых конструкций (например, echo()), которые ничего не возвращают.
7. Арифметические операторы
Помните школьные основы арифметики? Описанные ниже операторы работают так же.
Пример |
Название |
Результат |
|
-$a |
Отрицание |
Смена знака $a. |
|
$a + $b |
Сложение |
Сумма $a и $b. |
|
$a - $b |
Вычитание |
Разность $a и $b. |
|
$a * $b |
Умножение |
Произведение $a и $b. |
|
$a / $b |
Деление |
Частное от деления $a на $b. |
|
$a % $b |
Деление по модулю |
Целочисленный остаток от деления $a на $b. |
|
$a ** $b |
Возведение в степень |
Результат $a в степени $b. (появилось в PHP 5.6.0) |
Операция деления ("/") всегда возвращает вещественный тип, даже если оба значения были целочисленными (или строками, которые преобразуются в целые числа).
Возможно также использовать скобки. Приоритет одних математических операций над другими и изменение приоритетов при использовании скобок в арифметических выражениях соответствуют обычным математическим правилам. PHP, аналогично C, поддерживает префиксные и постфиксные операторы инкремента и декремента.
Пример |
Название |
Действие |
|
++$a |
Префиксный инкремент |
Увеличивает $a на единицу и возвращает значение $a. |
|
$a++ |
Постфиксный инкремент |
Возвращает значение $a, а затем увеличивает $a на единицу. |
|
--$a |
Префиксный декремент |
Уменьшает $a на единицу и возвращает значение $a. |
|
$a-- |
Постфиксный декремент |
Возвращает значение $a, а затем уменьшает $a на единицу. |
Булевые типы не подлежат инкрементированию и декрементированию.
Подробнее об операторах инкремента и декремента здесь.
Математические функции PHP
Вы можете подробно ознакомиться с математическими функциями и константами PHP здесь.
Операторы присвоения
Базовый оператор присвоения обозначается как =. На первый взгляд может показаться, что это оператор "равно". На самом деле это не так. В действительности, оператор присвоения означает, что левый операнд получает значение правого выражения, (т.е. устанавливается результирующим значением).
Результатом выполнения оператора присвоения является само присвоенное значение. Таким образом, результат выполнения $a = 3 будет равен 3. Это позволяет использовать конструкции вида:
<?php $a = ($b = 4) + 5; // результат: $a установлена значением 9, переменной $b присвоено 4.?>
В дополнение к базовому оператору присвоения имеются "комбинированные операторы" для всех бинарных арифметических и строковых операций, которые позволяют использовать некоторое значение в выражении, а затем установить его как результат данного выражения. Например:
<?php $a = 3; $a += 5; // устанавливает $a значением 8, аналогично записи: $a = $a + 5; $b = "Hello "; $b.= "There!"; // устанавливает $b строкой "Hello There!", как и $b = $b. "There!";?>
Обратите внимание, что присвоение копирует оригинальную переменную в новую (присвоение по значению), таким образом все последующие изменения одной из переменных на другой никак не отражаются. Начиная с PHP 4, также поддерживается присваивание по ссылке, используя синтаксис $var = &$othervar; 'Присвоение по ссылке' означает, что обе переменные указывают на одни и те же данные и никакого копирования не происходит. Подробно о ссылках вы можете узнать здесь.
Побитовые операторы
Данные операторы предназначены для установки или снятия групп битов целочисленной переменной. Ведь любое число - это просто последовательность бит. Целые числа в PHP - 32-битные.
Для представления одного числа используются 32 бита:
0000 0000 0000 0000 0000 0000 0000 0000 - это ноль;
0000 0000 0000 0000 0000 0000 0000 0001 - это 1;
0000 0000 0000 0000 0000 0000 0000 0010 - это 2;
0000 0000 0000 0000 0000 0000 0000 0011 - это 3;
0000 0000 0000 0000 0000 0000 0000 0100 - это 4;
0000 0000 0000 0000 0000 0000 0000 0101 - это 5;
Побитовые операторы
Пример |
Название |
Результат |
|
$a & $b |
Побитовое 'и' |
Устанавливаются только те биты, которые установлены и в $a, и в $b. |
|
$a | $b |
Побитовое 'или' |
Устанавливаются те биты, которые установлены либо в $a, либо в $b. |
|
$a ^ $b |
Исключающее или |
Устанавливаются только те биты, которые установлены либо только в $a, либо только в $b |
|
~ $a |
Отрицание |
Устанавливаются те биты, которые в $a не установлены, и наоборот. |
|
$a << $b |
Сдвиг влево |
Все биты переменной $a сдвигаються на $b позиций влево (каждая позиция подразумевает 'умножение на 2') |
|
$a >> $b |
Сдвиг вправо |
Все биты переменной $a сдвигаються на $b позиций вправо (каждая позиция подразумевает 'деление на 2') |
Операторы сравнения
Операторы сравнения, как это видно из их названия, позволяют сравнивать между собой два значения. Также вам возможно будет интересно ознакомиться с разделом сравнение типов, в котором приведено большое количество соответствующих примеров.
В PHP разрешается сравнивать только скалярные переменные. Массивы и объекты в PHP сравнивать нельзя.
Операторы сравнения:
Пример |
Название |
Результат |
|
$a == $b |
Равно |
TRUE если $a равно $b. |
|
$a === $b |
Тождественно равно |
TRUE если $a равно $b и имеет тот же тип. (Добавлено в PHP 4) |
|
$a!= $b |
Не равно |
TRUE если $a не равно $b. |
|
$a <> $b |
Не равно |
TRUE если $a не равно $b. |
|
$a!== $b |
Тождественно не равно |
TRUE если $a не равно $b или в случае, если они разных типов (Добавлено в PHP 4) |
|
$a < $b |
Меньше |
TRUE если $a строго меньше $b. |
|
$a > $b |
Больше |
TRUE если $a строго больше $b. |
|
$a <= $b |
Меньше или равно |
TRUE если $a is меньше или равно $b. |
|
$a >= $b |
Больше или равно |
TRUE если $a больше или равно $b. |
Логические операторы
Пример |
Название |
Результат |
|
$a and $b |
Логическое 'и' |
TRUE если и $a, и $b TRUE. |
|
$a or $b |
Логическое 'или' |
TRUE если или $a, или $b TRUE. |
|
$a xor $b |
Исключающее 'или' |
TRUE если $a, или $b TRUE, но не оба. |
|
! $a |
Отрицание |
TRUE если $a не TRUE. |
|
$a && $b |
Логическое 'и' |
TRUE если и $a, и $b TRUE. |
|
$a || $b |
Логическое 'или' |
TRUE если или $a, или $b TRUE. |
Операторы инкремента (++) и декремента (--) не работают с логическими переменными.
Приоритеты операторов PHP
Операторы с более высоким уровнем приоритета выполняются в первую очередь:
Приоритет |
Оператор |
Порядок выполнения |
|
13 |
(постфикс)++ (постфикс)-- |
слева направо |
|
12 |
++(префикс) --(префикс) |
справа налево |
|
11 |
* / % |
слева направо |
|
10 |
+ - |
слева направо |
|
9 |
<< >> |
слева направо |
|
8 |
< <= > >= |
слева направо |
|
7 |
==!= |
слева направо |
|
6 |
& |
слева направо |
|
5 |
^ |
слева направо |
|
4 |
| |
слева направо |
|
3 |
&& |
слева направо |
|
2 |
|| |
слева направо |
|
1 |
= += -= *= /= %= >>= <<== &= ^= |= |
справа налево |
В любом случае, если вы сомневаетесь, или боитесь ошибиться, используйте скобки.
Строковые операторы
В PHP есть два оператора для работы со строками. Первый - оператор конкатенации ('.'), который возвращает объединение левого и правого аргумента. Второй - оператор присвоения с конкатенацией, который присоединяет правый аргумент к левому. Приведем конкретный пример:
<?php $a = "Hello "; $b = $a. "World!"; // $b содержит строку "Hello World!" $a = "Hello "; $a.= "World!"; // $a содержит строку "Hello World!"?>
Смотрите также: Операторы присвоения
Мы кратко ознакомились лишь с частью операторов PHP. Вообще, существуют и другие важные операторы PHP. Чтобы ознакомиться с ними, перейдите в раздел "Операторы PHP".
9. Конструкции языка PHP
Любой сценарий PHP сформирован из ряда конструкций. Конструкцией могут быть операторы, функции, циклы, условные конструкции, даже конструкции, которые не делают ничего (пустые конструкции). Конструкции обычно заканчиваются точкой с запятой. Кроме того, конструкции могут быть сгруппированы в группу, формируя группу конструкций с изогнутыми фигурными скобками {...}. Группа конструкций - это также отдельная конструкция. Конструкции языка PHP похожи на конструкции языка C.
Кратко рассмотрим основные конструкции языка PHP. Для более детального изучения конструкций PHP обратитесь к разделу "Конструкции PHP".
Итак, основные конструкции языка PHP:
» Условные операторы:
if else elseif
» Циклы:
while do-while for foreach break continue
» Конструкции выбора:
switch
» Конструкции возврата значений:
return
» Конструкции включений:
require() include() require_once() include_once()
10. Пользовательские функции в PHP
В любом языке программирования существуют подпрограммы. В языке C они называются функциями, в ассемблере - подпрограммами, а в Pascal существуют два вида подпрограмм: процедуры и функции.
Подпрограмма - это специальным образом оформленный фрагмент программы, к которому можно обратиться из любого места внутри программы. Подпрограммы существенно упрощают жизнь программистам, улучшая читабельность исходного кода, а также сокращая его, поскольку отдельные фрагменты кода не нужно писать несколько раз.
В PHP такими подпрограммами являются пользовательские функции.
Особенности пользовательских функций PHP
Перечислим особенности пользовательских функций в PHP:
Доступны параметры по умолчанию. Есть возможность вызывать одну и ту же функцию с переменным числом параметров;
Пользовательские функции могут возвращать любой тип;
Область видимости переменных внутри функции является иерархической (древовидной);
Есть возможность изменять переменные, переданные в качестве аргумента.
При использовании пользовательских функций встает вопрос об области видимости переменных.
Переменные по области видимости подразделяются на глобальные и локальные.
Глобальные переменные - это переменные, которые доступны всей программе, включая подпрограммы (функции).
Локальные переменные - переменные, определенные внутри подпрограммы (функции). Они доступны только внутри функции, в которой они определены.
Для PHP все объявленные и используемые в функции переменные по умолчанию локальны для функции. То есть, по умолчанию нет возможности изменить значение глобальной переменной в теле функции.
Если вы в теле пользовательской функции будете использовать переменную с именем, идентичным имени глобальной переменной (находящейся вне пользовательской функции), то никакого отношения глобальной переменной эта локальный переменная иметь не будет. В данной ситуации в пользовательской функции будет создана локальная переменная с именем, идентичным имени глобальной переменной, но доступна данная локальная переменная будет только внутри этой пользовательской функции.
Поясним данный факт на конкретном примере:
<?php $a = 100; function funct() { $a = 70; echo "<h4>$a</h4>"; } funct(); echo "<h2>$a</h2>";?>
Сценарий выведет сперва 70, а затем 100:
70 100
Для избавления от приведенного недостатка, в PHP существует специальная инструкция global, позволяющая пользовательской функции работать с глобальными переменными. Подробнее об этом можете узнать здесь
Помимо локальных и глобальных переменных, в PHP существует еще один тип переменных - статические переменные.
Если в теле пользовательской функции объявлена статическая переменная, то компилятор не будет ее удалять после завершения работы функции. Пример работы пользовательской функции, содержащей статические переменные:
<?php function funct() { static $a; $a++; echo "$a"; } for ($i = 0; $i++<10;) funct();?>
Данный сценарий выводит строку:
1 2 3 4 5 6 7 8 9 10
Если мы удалим инструкцию static, будет выведена строка:
1 1 1 1 1 1 1 1 1 1
Это связано с тем, что переменная $a будет удаляться при завершении работы функции и обнуляться при каждом ее вызове. Переменная $a инкрементируется сразу после обнуления, а только потом выводится.
Создание пользовательских функций
Пользовательская функция может быть объявлена в любой части программы (скрипта), до места ее первого использования. И не нужно никакого предварительного объявления.
Синтаксис объявления функций следующий:
function Имя (аргумент1[=значение1],...,аргумент1[=значение1]) { тело_функции }
Объявление функции начинается служебным словом function, затем следует имя функции, после имени функции - список аргументов в скобках. Тело функции заключается в фигурные скобки и может содержать любое количество операторов.
Требования, предъявляемые к именам функций:
Имена функций могут содержать русские буквы, но давать функциям имена, состоящие из русских букв не рекоммендуется;
Имена функций не должны содержать пробелов;
Имя каждой пользовательской функции должно быть уникальным. При этом, необходимо помнить, что регистр при объявлении функций и обращении к ним не учитывается. То есть, например, функции funct() и FUNCT() имеют одинаковые имена;
Функциям можно давать такие же имена, как и переменным, только без знака $ в начале имен.
Типы значений, возвращаемые пользовательскими функциями, могут быть любыми. Для передачи результата работы пользовательских функций в основную программу (скрипт) используется конструкция return. Если функция ничего не возвращает, конструкцию return не указывают. Конструкция return может возвращать все, что угодно, в том числе и массивы.
Приведем примеры испольльзования пользовательских функций:
<?php function funct() { $number = 777; return $number; } $a = funct(); echo $a;?>
В рассмотренном примере функция funct возвращает с помощью инструкции return число 777. Возвращенное функцией значение присваивается глобальной переменной $a, а затем оператор echo выводит значение переменной $a в браузер. В результате мы увидим в браузере число 777.
Передача аргументов пользовательским функциям
При объявлении функции можно указать список параметров, которые могут передаваться функции, например:
<?php function funct($a, $b, /*..., */ $z) {... };?>
При вызове функции funct() нужно указать все передаваемые параметры, поскольку они являются обязательными. В PHP пользовательские функции могут обладать необязательными параметрами или параметрами по умолчанию, но об этом позже.
Передача аргументов по ссылке
Если вы хотите, что бы аргумент передавался по ссылке, вы должны указать амперсанд (&) перед именем аргумента в описании функции:
<?php function funct(&$string) { $string.= 'а эта внутри.'; } $str = 'Эта строка за пределами функции, '; funct($str); echo $str; // Выведет 'Эта строка за пределами функции, а эта внутри.'?>
Параметры по умолчанию
В PHP функции могут возвращать любые значения в зависимости от переданных им параметров.
<?php function makecup($type = "Чая") { return "Сделайте чашечку $type.\n"; } echo makecup(); echo makecup("Кофе");?>
Результат работы приведенного скрипта будет таким:
Сделайте чашечку Чая Сделайте чашечку Кофе
Значение по умолчанию должно быть константным выражением.
Мы рассмотрели лишь часть возможностей по работе с пользовательскими функциями. Для более детального изучения воспользуйтесь детальной информацией по пользовательским функциям.
11. Основы ООП
В последнее время идея объектно-ориентированного программирования (ООП), кардинально новая идеология написания программ, все более занимает умы программистов.
Объектно-ориентированные программы более просты и мобильны, их легче модифицировать и сопровождать, чем их "традиционных" собратьев. Кроме того, похоже, сама идея объектной ориентированности при грамотном ее использовании позволяет программе быть даже более защищенной от различного рода ошибок, чем это задумывал программист в момент работы над ней. Однако ничего не дается даром: сами идеи ООП довольно трудны для восприятия "с нуля", поэтому до сих пор очень большое количество программ (различные системы Unix, Apache, Perl, да и сам PHP) все еще пишутся на старом добром "объектно-неориентированном" Си.
PHP до недавнего времени обеспечивал лишь некоторую поддержку ООП. Однако, после выхода PHP5 поддержка ООП в PHP стала практически полной.
Стратегию ООП лучше всего описать как смещение приоритетов в процессе программирования от функциональности приложения к структурам данных. Это позволяет программисту моделировать в создаваемых приложениях реальные объекты и ситуации. Технология ООП обладает тремя главными преимуществами:
она проста для понимания: ООП позволяет мыслить категориями повседневных объектов;
повышенно надежна и проста для сопровождения -- правильное проектирование обеспечивает простоту расширения и модификации объектно-ориентированных программ. Модульная структура позволяет вносить независимые изменения в разные части программы, сводя к минимуму риск ошибок программирования;
ускоряет цикл разработки -- модульность и здесь играет важную роль, поскольку различные компоненты объектно-ориентированных программ можно легко использовать в других программах, что уменьшает избыточность кода и снижает риск внесения ошибок при копировании.
Специфика ООП заметно повышает эффективность труда программистов и позволяет им создавать более мощные, масштабируемые и эффективные приложения.
Объектно-ориентированное программирование основано на:
Инкапсуляции;
Полиморфизме;
Наследовании.
Инкапсуляция
Инкапсуляция - это механизм, объединяющий данные и обрабатывающий их код как единое целое.
Многие преимущества ООП обусловлены одним из его фундаментальных принципов -- инкапсуляцией. Инкапсуляцией называется включение различных мелких элементов в более крупный объект, в результате чего программист работает непосредственно с этим объектом. Это приводит к упрощению программы, поскольку из нее исключаются второстепенные детали.
Инкапсуляцию можно сравнить с работой автомобиля с точки зрения типичного водителя. Многие водители не разбираются в подробностях внутреннего устройства машины, но при этом управляют ею именно так, как было задумано. Пусть они не знают, как устроен двигатель, тормоз или рулевое управление, -- существует специальный интерфейс, который автоматизирует и упрощает эти сложные операции. Сказанное также относится к инкапсуляции и ООП -- многие подробности "внутреннего устройства" скрываются от пользователя, что позволяет ему сосредоточиться на решении конкретных задач. В ООП эта возможность обеспечивается классами, объектами и различными средствами выражения иерархических связей между ними.
Полиморфизм
Полиморфизм позволяет использовать одни и те же имена для похожих, но технически разных задач. Главным в полиморфизме является то, что он позволяет манипулировать объектами путем создания стандартных интерфейсов для схожих действий. Полиморфизм значительно облегчает написание сложных программ.
Наследование
Наследование позволяет одному объекту приобретать свойства другого объекта, не путайте с копированием объектов. При копировании создается точная копия объекта, а при наследовании точная копия дополняется уникальными свойствами, которые характерны только для производного объекта.
Классы и объекты в PHP
Класс - это базовое понятие в объектно-ориентированном программировании (ООП). Если сказать проще, то класс - это своеобразный тип переменной.
Экземпляр класса - это объект. Объект - это совокупность данных (свойств) и функций (методов) для их обработки. Данные и методы называются членами класса. Вообще, объектом является все то, что поддерживает инкапсуляцию.
Внутри объекта данные и код (члены класса) могут быть либо открыты, либо нет. Открытые данные и члены класса являются доступными для других частей программы, которые не являются частью объекта. А вот закрытые данные и члены класса доступны только внутри этого объекта.
Описание классов в PHP начинаются служебным словом class:
class Имя_класса { // описание членов класса - данных и методов для их обработки }
Для объявления объекта необходимо использовать оператор new:
Объект = new Имя_класса;
Данные описываются с помощью служебного слова var. Метод описывается так же, как и обыкновенная функция. Методу также можно передавать параметры.
Пример класса на PHP:
<?php // Создаем новый класс Coor: class Coor { // данные (свойства): var $name; var $addr; // методы: function Name() { echo "<h3>John</h3>"; } } // Создаем объект класса Coor: $object = new Coor;?>
Доступ к классам и объектам в PHP
Мы рассмотрели, каким образом описываются классы и создаются объекты. Теперь нам необходимо получить доступ к членам класса, для этого в PHP предназначен оператор ->. Приведем пример:
<?php // Создаем новый класс Coor: class Coor { // данные (свойства): var $name; // методы: function Getname() { echo "<h3>John</h3>"; } } // Создаем объект класса Coor: $object = new Coor; // Получаем доступ к членам класса: $object->name = "Alex"; echo $object->name; // Выводит 'Alex' // А теперь получим доступ к методу класса (фактически, к функции внутри класса): $object->Getname(); // Выводит 'John' заглавными буквами?>
Чтобы получить доступ к членам класса внутри класса, необходимо использовать указатель $this, который всегда относится к текущему объекту. Модифицированный метод Getname():
function Getname() { echo $this->name; }
Таким же образом, можно написать метод Setname():
function Setname($name) { $this->name = $name; }
Теперь для изменения имени можно использовать метод Setname():
$object->Setname("Peter"); $object->Getname();
А вот и полный листинг кода:
<?php // Создаем новый класс Coor: class Coor { // данные (свойства): var $name; // методы: function Getname() { echo $this->name; } function Setname($name) { $this->name = $name; } } // Создаем объект класса Coor: $object = new Coor; // Теперь для изменения имени используем метод Setname(): $object->Setname("Nick"); // А для доступа, как и прежде, Getname(): $object->Getname(); // Сценарий выводит 'Nick'?>
Указатель $this можно также использовать для доступа к методам, а не только для доступа к данным:
function Setname($name) { $this->name = $name; $this->Getname(); }
Инициализация объектов
Иногда возникает необходимость выполнить инициализацию объекта - присвоить его свойствам первоначальные значения. Предположим, имя класса Coor и он содержит два свойства:имя человека и город его проживания. Можно написать метод (функцию), который будет выполнять инициализацию объекта, например Init():
<?php // Создаем новый класс Coor: class Coor { // данные (свойства): var $name; var $city; // Инициализирующий метод: function Init($name) { $this->name = $name; $this->city = "London"; } } // Создаем объект класса Coor: $object = new Coor; // Для инициализации объекта сразу вызываем метод: $object->Init();?>
Главное не забыть вызвать функцию сразу после создания объекта, либо вызвать какой-нибудь метод между созданием (оператор new) объекта и его инициализацией (вызовом Init).
Для того, чтобы PHP знал, что определенный метод нужно вызывать автоматически при создании объекта, ему нужно дать имя такое же, как и у класса (Coor):
function Coor ($name) $this->name = $name; $this->city = "London"; }
Метод, инициализирующий объект, называется конструктором. Однако, PHP не имеет деструкторов, поскольку ресурсы освобождаюся автоматически при завершении работы скриптов.
язык программирование пользовательский
12. Наследование и полиморфизм классов в PHP
Наследование классов в PHP
Наследование - это не просто создание точной копии класса, а расширение уже существующего класса, чтобы потомок мог выполнять какие-нибудь новые, характерные только ему функции. Рассмотрим конкретный пример на PHP:
<?php class Parent { function parent_funct() { echo "<h1>Это родительская функция</h1>"; } function test () { echo "<h1>Это родительский класс</h1>"; } } class Child extends Parent { function child_funct() { echo "<h2>Это дочерняя функция</h2>"; } function test () { echo "<h2>Это дочерний класс</h2>"; } } $object = new Parent; $object = new Child; $object->parent_funct(); // Выводит 'Это родительская функция' $object->child_funct(); // Выводит 'Это дочерняя функция' $object->test(); // Выводит 'Это дочерний класс'?>
Ключевое слово extends (см. пример) говорит о том, что дочерний класс Child наследует все методы и свойства класса Parent. Родительский класс обычно называют базовым классом или суперклассом, а дочерний класс Child -производным или подклассом.
Полиморфизм классов в PHP
Полиморфизм - это свойство базового класса использовать функции производных классов. Практический пример, показывающий свойство класса - полиморфизм:
<?php class Base { function funct() { echo "<h2>Функция базового класса</h2>"; } function base_funct() { $this->funct(); } } class Derivative extends Base { function funct() { echo "<h3>Функция производного класса</h3>"; } } $b = new Base(); $d = new Derivative(); $b->base_funct(); $d->funct(); $d->base_funct(); // Скрипт выводит: // Функция базового класса // Функция производного класса // Функция производного класса?>
В рассмотренном примере функция base_funct() класса Base была перезаписана одноименной функцией класса Derivative. Функция, переопределенная таким образом, называется виртуальной.
Размещено на Allbest.ru
Подобные документы
Основы языка программирования Web-страниц – HTML. Виды информации, которую может содержать Web-страница: текст, графика, звук, анимация и видео. Инструментарий для создания Web-страниц. Основные HTML-редакторы, которые используются для Web-дизайна.
реферат [374,0 K], добавлен 19.01.2011HTML - это язык, принятый в World Wide Web для создания и публикации веб-страниц. Общие сведения о создании веб-страниц, особенности их оформления. PHP как язык программирования с динамической типизацией, история его создания и возможности использования.
доклад [18,9 K], добавлен 27.12.2010Основные теги и атрибуты языка HTML. Создание web-сайта, который должен представлять собой несколько связанных между собой страниц. Рассмотрение различных значений атрибутов и тегов на страницах и в других документах. Экранные формы разработанных страниц.
лабораторная работа [1,2 M], добавлен 16.04.2014Общая характеристика языка разметки гипертекста Hypertext Markup Language. Структура HTML-документа. Обзор основных возможностей HTML. Элементы современного дизайна Web-страниц. Анализ практического применения HTML (на примере обучающих программ).
курсовая работа [47,9 K], добавлен 24.11.2012Обоснование выбора языка программирования для создания интернет магазина. Построение виртуальных страниц. Определение затрат на создание Web-сайта. Расчет трудоемкости создания программного продукта. Использование HTML как языка разметки гипертекста.
дипломная работа [1,2 M], добавлен 28.05.2016Сущность и история развития объектно-ориентированного программирования. Наследование как важнейшее свойство объекта. Экземпляры объектных типов. Поля объектов, методы, полиморфизм. Производительность объектных программ. Пример программного продукта.
курсовая работа [33,3 K], добавлен 25.03.2012Производственная функция и ее свойства и экономическое содержание. Краткая история PHP - языка программирования, используемого на стороне WEB-сервера для динамической генерации HTML-страниц. Возможности и примеры использования MySQL (сервера баз данных).
курсовая работа [572,4 K], добавлен 15.05.2015Сравнение языка Php с другими языками программирования web-приложений. Язык разметки гипертекстовых страниц Html. Технология Macromedia Flash, её преимущества и недостатки. Этапы создания флеш-сайта, руководство пользователя и листинг программы.
дипломная работа [2,3 M], добавлен 04.10.2013Изучение принципов объектно-ориентированного программирования. Понятие класса в Delphi, в основе которых лежат три фундаментальные принципы - инкапсуляция, наследование и полиморфизм. Разработка классов транспортных средств и структур классов (кошки).
курсовая работа [29,7 K], добавлен 29.10.2011Цели и задачи дисциплины "Технология программирования". Программные средства ПК. Состав системы программирования и элементы языка. Введение в систему программирования и операторы языка Си. Организация работы с файлами. Особенности программирования на С++.
методичка [126,3 K], добавлен 07.12.2011