PHP: различия между версиями
Содержимое удалено Содержимое добавлено
→strpos(): ошибка в примере |
Nikolice (обсуждение | вклад) м Синтаксис, викификация. |
||
Строка 1:
{{wikipedia}}
'''PHP''' (произносится ''пи-эйч-пи́'') — [[w:скриптовый язык|скриптовый язык]] программирования, созданный для генерации [[w:HTML|HTML]]-страниц на [[w:веб-сервер|веб-сервере]] и работы с [[w:база данных|базами данных]]. На сегодняшний момент поддерживается подавляющим большинством представителей [[w:хостинг|хостингов]]. Входит в
== Комментарии ==
'''PHP''' предоставляет несколько методов для вставки комментариев. Проще всего пользоваться двойной косой чертой (//), после чего '''PHP
<source lang="php">
<?php
print '<p>Hello</p>'; // Комментарий
print '<p>Hello</p>'; # Комментарий
/* Комментарий
... и это тоже комментарии
*/
// Комментарии очень удобны в тех случаях,
// когда необходимо исключить часть кода // для отладки программы $uname = $_POST['uname'];
// $uname = preg_replace('#[^a-zA-Z0-9\_\-\.]#', '', $uname);
// Закомментировали часть кода,
// так как не выводится // возможно, дело в этой строке: echo $uname;
# Изначально, комментарии создавались для того,
// чтобы, не нарушая работы программы, // добавить описание к той или иной строке // например: echo getUsersOnline(2, 1, 4);
/* Аргументы функции:
0 - номер открытого соединения с базой данных;
1 - режим ответа ("0" - массив / "1" - строка);
2 - кол-во минут, прошедших с момента
последней активности пользователя (необязательный) */
?>
</source>
Следует помнить о том, что стили комментариев '''PHP''' действуют только внутри ограничителей '''PHP'''. Если '''PHP''' встретит эти символы комментариев вне ограничителей, то они, как и любой текст, будут помещены на HTML-страницу. Например:
<source lang="php">
Строка 40 ⟶ 48 :
</source>
<source lang="html5">
// А вот этот комментарий отобразится браузером.
<!-- Комментарий
</source>
== Переменные ==
В '''РНР''' — переменные начинаются со знака доллара ($). За этим знаком может следовать любое количество буквенно-цифровых символов и символов
При объявлении переменных — в '''РНР''' не требуется явно указывать тип переменной
Переменная инициализируется в момент
=== Функции вывода ===
В '''PHP''' существует несколько способов вывести что-либо в веб
*Операторы <code>echo</code> и <code>print</code>
*:Работают одним и тем же образом, но '''print''' всегда возвращает "1", в то время как '''echo''' ничего не возвращает. Выводят значение аргумента.
*Функция <code>print_r()</code>
*:Позволяет корректно выводить массивы.
*Функция <code>var_dump()</code>
*:Выводит переменную вместе с типом. Очень удобный инструмент для отладки.
==== Вывод различных функций ====
Строка 107 ⟶ 115 :
=== Типы данных в РНР ===
Как уже было сказано, '''PHP''' предоставляет
*integer (целые числа);
*string (строки);
*boolean (двоичные данные (или "Истина", или "Ложь"));
*double, если после точки 1 или 2 цифры
*[[PHP/Массивы|array]] (массивы);
*object (
*NULL (пустой тип);
*Resource (ресурсы);
Есть функция <code>gettype()</code>, возвращающая тип, который '''РНР''' назначил переменной:
<source lang="php">
<?php
Строка 126 ⟶ 134 :
</source>
В первом случае, '''РНР'''
Стоит заметить, что операция «'''.'''» (точка) используется для склеивания (конкатенации) строк.
Существует также функция <code>settype()</code>, которая явно устанавливает тип:
<source lang="php">
Строка 141 ⟶ 149 :
</source>
Выполнение этого фрагмента кода
Кроме функции <code>settype()</code>, преобразование типов в '''РНР''' можно осуществлять при помощи операторов преобразования типов. Преобразование типов осуществляется
<source lang="php">
$var = (integer)$var;
</source>
Соответственно, выполнение следующего кода
<source lang="php">
<?php
$var = '5'; // Изначально, создаётся переменная типа "string" (строковая)
$var = (integer)$var; // Преобразуем её тип в "int" (целочисленный)
echo gettype($var); // Отображаем окончательный тип переменной
?>
</source>
=== Внешние переменные ===
После того, как запрос клиента проанализирован веб-сервером и передан '''РНР'''-интерпретатору
Сначала '''PHP''' инициализирует массивы <code>$_ENV</code> (переменные окружения) и <code>$_SERVER</code><ref>На самом деле, порядок инициализации суперглобальных массивов зависит от настроек в файле ''php.ini''</ref>. Ассоциативный массив <code>$_SERVER</code> содержит следующие ключи (индексы массива):
*<code>$_SERVER['HTTP_USER_AGENT']</code> — браузер клиента;
*<code>$_SERVER['HTTP_ACCEPT']</code> — принимаемые MIME-типы. Может служить для определения возможностей браузера;
*<code>$_SERVER['PHP_SELF']</code> — путь к файлу, содержащему выполняющийся скрипт, относительно корневого каталога (папки) сервера. Пример: <code>/w/index.php</code>
Затем '''РНР''' заполняет переменную <code>$_GET[]</code>, являющуюся ассоциативным массивом, которая создаётся при анализе строки запроса. Строка запроса хранится в элементе массива <code>$_SERVER['QUERY_STRING']</code> и представляет собой информацию, следующую за символом «?» в запрошенном URL. '''РНР''' разбивает строку запроса по символам «&»<ref>Символ разделения также может меняться в файле ''php.ini''. Часто используется символ «;».</ref> на отдельные элементы, а затем ищет в каждом из этих элементов знак «=». Если знак «=» найден, то
<source lang="html5">
Строка 194 ⟶ 202 :
</source>
Если Вы в этой форме в строке "HDD"
<code>http://localhost/PHP/test.php?HDD=Maxtor&CDROM=Nec</code>
В нашем случае '''РНР''' создаст следующие элементы массива с соответствующими индексами (ключами): <code>$_GET['HDD'] = 'Maxtor'</code> и <code>$_GET['CDROM'] = 'Nec'</code>.
Вы можете работать с этими переменными из Вашего скрипта (у нас — "test.php") как с обычными переменными. В нашем случае они просто выводятся на экран:
<source lang="php">
Строка 208 ⟶ 217 :
</source>
Если запрос страницы выполняется при помощи метода <code>POST</code>, то появляется группа ''POST''-переменных, которые интерпретируются так же и помещаются в массив <code>$_POST[]</code>.
== Константы ==
Константы объявляются в '''РНР''' при помощи функции <code>define()</code>:
<source lang="php">
define('CONSTANT', value)
Строка 239 ⟶ 248 :
== Операторы ==
=== Математические операторы ===
В '''PHP''', как и в любом другом языке программирования, есть базовый набор математических операторов:
*'''Унарный минус''' (<code>-</code>) — изменяет знак числа;
*'''Сложение, вычитание, умножение''' (<code>+</code>, <code>-</code>, <code>*</code>) — действуют
*'''Деление''' (<code>/</code>) — всегда возвращает вещественное число (т.е. с типом данных <code>float</code>), вне зависимости от результата
*'''Деление по модулю''' (<code>%</code>) — возвращает остаток от деления.
=== Инкремент и декремент ===
*
**<code>$a++
**<code>$a--</code> —
*
**<code>++$a</code> — увеличивает $a на 1;
**<code>--$a</code> — уменьшает $a на 1.
=== Операторы сравнения ===
Существуют следующие операторы сравнения:
{|
|'''Оператор'''
| <code>$a == $b</code> («равно»)▼
|'''Значение'''
|'''Условие истинности''' (возвращается <code>true</code>).
|-
|Равно
| '''$a''' равно '''$b'''.
|-
| <code>$a === $b</code>
|Идентично
|
|-
| <code>$a != $b</code> или <code>$a <> $b</code>
|Не равно |
|-
| <code>$a > $b</code>
|Строго |
|-
| <code>$a < $b</code>
|Строго |
|-
| <code>$a >= $b</code>
|
| '''$a''' больше или равно '''$b'''.
|-
| <code>$a <= $b</code>
|
| '''$a''' меньше или равно '''$b'''.
|}
=== Операторы присвоения ===
Для присвоения переменной нового значения — используется оператор «<code>=</code>»:
<source lang="php">
$a = $b + $c - 127;
</source>
Также существуют сокращённые операторы присвоения
<source lang="php">
$a = $a + 1;
|