Синтаксис языка PHP и операторы

выражения

Читать

объявление функции

Читать

классы

Читать

округление

Читать

дробные числа

обработка дробных чисел

Читать

cлучайные числа

Читать

конвертация

Читать

форматирование

Читать

cтепенные функции

Читать


Выражения

if Позволяет организовывать выполнение фрагментов кода по условию.
Синтаксис : if (выражение) statement
Может иметь неограниченную степень вложенности в другие IF.
if($a>$b)
print "$a больше $b";
if($a>$b){echo "$a больше $b;$b=$a;}

else Расширяет возможности IF по части обработки вариантов выражения, когда оно равно FALSE.
Выражение ELSE выполняется только если IF равно FALSE.
if ($a>$b) {
echo "a больше b";
} else {
echo "a меньше b";
}
elseif Является комбинацией IF и ELSE. Позволяет выполнить выражение, если значение IF равно FALSE, но в отличии от ELSE оно выполниться, если выражение ELSEIF равно TRUE.

if ($a>$b) {
echo "a больше b";
} elseif ($a==$b) {
echo "a равно b";
} else {
echo "a меньше b";
} if_endif Один из возможных вариантов группирования операторов с оператором IF.
Удобно при внедрении больших блоков HTML-кода внутрь оператора IF.
if ($a==1):
echo "a равно 1";
elseif ($a==2):
echo "a равно 2";
else:
echo "а не равно 1 и 2";
endif;
if ($a==5):?>A=5 endif;?>
-Блок HTML-кода A=5 будет виден, если выполнется условие $a==5

while Простейший тип цикла в PHP. Заставляет PHP выполнять вложенные операторы до тех пор, пока условие равно TRUE. Если условие равно FALSE с самого начала, то цикл не выполнится не разу.
Синтаксис : WHILE(условие)выражения
Можно сгруппировать несколько операторов внутри фигурных скобок или использовать
альтернативный синтаксис : WHILE(условие)выражения... ENDWHILE;

$a=1; //Перед началом цикла значение переменной $a устанавливается равным 1 (это значение может быть любым). Это называется инициализацией переменной-счетчика.


while ($a<=5) { //Пока а меньше или равно 5 цикл продолжается, при а=5 цикл останавливается Значение выражения ($a<=5) проверяется каждый раз перед итерацией цикла. После пяти итераций условное выражение вернет значение FALSE (так как значение переменной $а уже будет не меньше или равно 5) и работа цикла прекратится. В том случае, если условное выражение while будет равно FALSE с самого начала, тело цикла ни разу не будут выполнено.


echo $a++; } //Выводим на экран числовое значение переменной а и добавляем к ней единицу



$a=1; //Задаём начальное значение переменной а


while ($a<=5): //Пока а меньше или равно 5 выполняется цикл, при а=5 Стоп. Выход из цикла


echo $a; //Выводим на экран числовое значение переменной а


$a++; //Увеличиваем а на единицу


endwhile; //Условие цикла выполнено, а=5 Выход из цикла



Эти два примера работают однаково и выводят числа с 1 до 5.

do_while Цикл, аналогичный WHILE, но значение логического выражения проверяется не до, а после окончания итерации. цикл do while требует как ключевого слова do (для отметки начала цикла), так и ключевого слова while (для отметки конца цикла и указания условия). Во-вторых, в отличие от цикла while, цикл do while завершается точкой с запятой. Данная разновидность цикла полезна, когда тело цикла должно быть исполнено хотя бы один раз, независимо от значения условного выражения. Основное отличие - то что цикл хоть один раз но выполнится.
$a=1;
do {
echo $a; } while ($a>1);
Можно прекратить использовать блок операторов в середине путем внедрения оператора BREAK в цикл DO..WHILE(0) :
do {
if ($a==5) {
echo "A равно 5"
break;
}
$a *= $b;
if ($a<$minimum) {
break;
}
echo "A равен $a";
} while(0);

for Наиболее мощный цикл в PHP.
Синтаксис : FOR (условие1; условие2; условие3) выражения

условие1 - Безусловно выполняется (вычисляется) в начале цикла
условие2 - Проверяется в начале каждой итерации. Если оно равно TRUE, то цикл продолжается и выполняются вложенные операторы. Если оно равно FALSE, то цикл заканчивается.
условие3 - Выполняется (вычисляется) в конце каждой итерации.

Каждое из этих условий может быть пустым.

Пример 1:
for ($a = 1; $a <= 5; $a++) {
echo $a;
}

Пример 2:
for ($a = 1;;$a++) {
if ($a > 5) {
break;
}
echo $a;
}

Пример 3:
$a = 1;
for (;;) {
if ($a > 5) {
break;
}
print $a;
$a++;
}

Пример 4:
for ($a = 1; $a <= 5; print $a, $a++);
PHP поддерживает
альтернативный синтаксис FOR:
FOR(усл1; уcл2; усл3;):операторы;...;ENDFOR;

break Прерывает выполнение текущего цикла.

Пример :
$a = 0;
while ($a < 5) {
if ($arr[$a] == "stop") {
break;
}
$a++;
}

continue Переходит на начало ближайшего цикла.

while (list($key,$value) = each($arr)) {
if ($key % 2) {
continue;
}
do_something_odd ($value);
}

switch Сравнивает переменную или выражение с различными значениями и выполняет различные фрагменты кода в зависимости от того, чему будет равно значение выражения.

switch ($a) {
case 0:
echo "A равно 0";
break;

case 1:
echo "A равно 1";
break;

case 2:
echo "A равно 2";
break;

default:
echo "A не равно 0, 1, 2";
}

default - соответствует всем значениям, которые не удовлетворяют другим CASE. CASE - могут быть любого скалярного типа, т.е. целые числа или числа с плавающей запятой и строки.

require Передаёт управление содержимому указанного файла.

Пример :
require("include.inc");
Но его нельзя поместить внутрь цикла и ожидать, что он включит содержимое другого файла несколько раз в процессе каждой итерации. Для этого есть INCLUDE.
include Вызывает и выполняет содержимое указанного внешнего файла.
$files = array ("first.inc", "second.inc", "third.inc");
for ($a = 0; $a < count($files); $a++)
{include($files[$a]);}

Так как INCLUDE() это специальный оператор, требуется заключать его в фигурные скобки при использовании внутри условного оператора.
if ($a < 5) {include("file_1.inc");} else {include("file_2.inc");}

Функции

Объявление функции. Внутри функции может быть любой верный код PHP, даже объявление другой функции или класса. Функции должны быть объявлены перед тем, как на них ссылаться.
function foo ($arg_1, $arg_2,...,$arg_n) {
echo "Пример функции.";
return $retvalue;
}

Возвращение результатов :
Результаты возвращаются через необязательный оператор return. Возвращаемый результат может быть любого типа, включая списки и объекты.
function my_sqrt ($num) {
return $num * $num;
}
echo my_sqrt(4); //выведет 16
Множественные результаты не могут быть возвращены в качестве результата, но вы можете реализовать это путем возврата списка :
function foo() {
return array (0, 1, 2);
}
list ($zero, $one, $two) = foo();
Аргументы :
Информация может быть передана функции через список аргументов, которые являются разделенным запятыми списком переменных и/или констант.
Списки аргументов переменной длины не поддерживаются, но того же можно достичь, передавая массивы.
function takes_array($input) {
echo "$input[0] + $input[1] = ", $input[0]+$input[1];
}

Передача по ссылке :
По умолчанию, аргументы функции передаются по значению. Для изменения аргументов в функции их надо передавать по ссылке.
Для этого надо поставить амперсанд (&) перед именем аргумента в объявлении функции :
function foo( &$bar) {
$bar .= "и добавочная строка.";
}
$str = "Это строка, "; foo($str);
echo $str; // выведет : "Это строка, и добавочная строка."
function foo($bar) {
$bar .= "и добавочная строка.";
}
$str = "Это строка, ";
foo($str);
echo $str; //выведет : "Это строка, "
foo(&$str);
echo $str; //выведет : "Это строка, и добавочная строка."

Значения по умолчанию :
Значение по умолчанию должно быть константой, а не переменной или членом класса.

function day ($type = "понедельник") {
echo "Сегодня $type.";
}
echo day(); //выведет : Сегодня понедельник.
echo day("вторник"); //выведет : Сегодня вторник.
Аргументы по умолчанию при описании должны находиться справо от остальных аргументов.
function day($day_num, $type = "понедельник") {
return "Сегодня $day_num - $type.";
}

old_function Оператор OLD_FUNCTION позволяет вам определяить функцию используя синтаксис PHP/FI2 (за исключением того, что вы должны заменить "function" на "old_function").

Это свойство только для совместимости и должно использоваться лишь конверторами PHP/FI2 -> PHP3. Описанные таким образом функции не могут быть вызваны из служебного кода PHP. Вы можете обойти это путем введения специальной функции в терминах PHP3, которая будет вызывать OLD_FUNCTION.

Классы

class Набор переменных и функций, работающих с этими переменными.

class Cart {
var $items; // Количество вещей в корзине покупателя
// Добавить $num наименований типа $artnr в корзину
function add_item ($artnr, $num) {
$this->items[$artnr] += $num;
}
// Убрать $num наименований $artnr из корзины
function remove_item ($artnr, $num) {
if ($this->items[$artnr] > $num) {
$this->items[$artnr] -= $num;
return true;
} else {
return false;
}
}
}
?>

Классы это типы, то есть, заготовки для реальных переменных. Вы должны создавать переменные желаемого типа, используя оператор new :
$cart = new Cart;
$cart->add_item("10", 1);
Классы могут быть расширениями других классов. Расширенный класс обладает всеми переменными и функциями базового класса и тем, что вы определите при расширении класса. Это делается используя ключевое слово extends :

class Named_Cart extends Cart {
var $owner;
function set_owner ($name) {
$this->owner = $name;
}
}

Это определяет класс Named_Cart, который имеет все переменные и функции класса Cart плюс дополнительную переменную $owner и дополнительную функцию set_owner(). Вы можете создать поименованую корзину обычным образом и установить или получить владельца корзины. Также вы можете использовать и нормальные функции корзины в поименованой корзине :
$ncart = new Named_Cart; //Создать корзину
$ncart->set_owner ("kris");//Указать владельцаprint
$ncart->owner; //Распечатать имя владельца корзины
$ncart->add_item ("10", 1);//унаследовано из обычной корзины

Округление

Функции округления abs Возвращает модуль числа.

Синтаксис : mixed abs(mixed $number)
Тип параметра $number может быть float или int, а ти п возвращаемого значения всегда совпадает с типом этого параметра.
$x = abs(-4); // $x=4
$x = abs(-7.45); // $x=7.45

round Округление дробного числа до целого.
Синтаксис : double round(double $val)
Округляет $val до ближайшего целого и возвращает результат.
$foo = round(3.4); // $foo == 3.0
$foo = round(3.5); // $foo == 4.0
$foo = round(3.6); // $foo == 4.0
$x = round(5.3); // $x=5
$x = round(5.4); // $x=5
$x = round(5.45); // $x=5
$x = round(5.5); // $x=6

Обработка дробных чисел

ceil Дополнение дробного числа до следующего целого.
Синтаксис : int ceil(float $number)
Возвращает наименьшее целое число, не меньше $number. Разумеется, передавать в $number целое число бессмысленно.
$x = ceil(5.0); // $x=5
$x = ceil(5.1); // $x=6
$x = ceil(5.9); // $x=6

floor Удаление дробной части числа.
Синтаксис : int floor(float $number)
Возвращает максимальное целое число, не превосходящее $number.
$x = floor(5.1); // $x=5
$x = floor(5.9); // $x=5

Случайные числа


Случайные числа srand Производит инициализацию генератора случайных чисел.
Синтаксис : void srand(int seed)
Инициализирует генератор случайных чисел занчением seed.
srand((double) microtime()*1000000);
$random = rand();
echo $random;
Вот что получится:
1041755481

getrandmax Возвращает максимально возможное случайное число.
Синтаксис : int getrandmax()
Эта функция возвращает максимальное значение, которое можно получить при помощи функции генерации случайных чисел rand(). Обычно это 32767

rand Производит генерацию случайного числа.
Синтаксис : int rand([int max [, int min]])
При вызове с необязательными параметрами min и max эта функция генерирует случайное число, лежащее в пределах этих параметров включительно. Если параметры min и max отсутствуют, возвращается число, лежащее в пределах от 0 до RAND_MAX. Для корректной работы данной функции перед ее использованием нужно проинициализировать генератор случайных чисел функцией srand().

mt_rand Функция возвращает MT-случайное число, достаточно равномерно даже для того, чтобы использовать его в криптографии.
Синтаксис : int mt_rand(int $min=0, int $max=RAND_MAX)
Если вы хотите генерировать числа не от 0 до RAND_MAX (эта константа задает максимально допустимое случайное число, и ее можно получить при помощи вызова mt_getrandmax()), задайте соответствующий интервал в параметрах $min и $max. Не забудьте только перед первым вызовом этой функции запустить mt_srand().
mt_srand(time()+(double)microtime()*1000000);
$x = mt_rand(1,100); // $x - значение от 1 до 100

mt_srand Настраивает MT-генератор случайных чисел на новую последовательность.
Синтаксис : void mt_srand(int $seed)
Дело в том, что хотя числа, генерируемые mt_rand(), достаточно равновероятны, но у них есть один недостаток: последовательность сгенерированных чисел будет одинакова если сценарий вызывать несколько раз подряд. Функция mt_srand() как раз решает данную проблему: она выбирает новую последовательность на основе параметра $seed, причем практически непредсказуемым образом.
mt_srand(time()+(double)microtime()*1000000);
for($i=0;$i<=10;$i++) {
$x = mt_rand(1,10);
};
В этом случае последовательность устанавливается на основе времени завуска сценария (в секундах), поэтому она достаточно непредсказуема. Для еще более надежного результата рекомендуется приплюсовать сюда еще микросекунды (что и было сделано), а также идентификатор процесса, вызывавшего сценарий.

mt_getrandmax Возвращает максимальное MT-случайное число.
Синтаксис : int mt_getrandmax()
Возвращает максимальное число, которое может быть сгенерированно функцией mt_rand() - иными словами, константу RAND_MAX
$max = mt_getrandmax(); // $max = 2147483647

lcg_value функция генерирует случайное дробное число.
Синтаксис : double lcg_value()
Эта функция возвращает псевдослучайное дробное число в диапазоне от 0 до 1.

Перевод в различные системы счисления

base_convert Конвертация числа из одной системы счисления в другую.
Синтаксис : string base_convert(string $number, int $frombase, int $tobase)
Переводит число $number (заданное как строка в системе счисления по основанию $frombase) в систему по основанию $tobase. Параметры $frombase и $tobase могут принимать значения только от 2 до 36 включительно. В строке $number цифры обозначают сами себя, а буква a соответствует 11, b -12, и т.д. до z, которая обозначает 36. Например, следующие команды выведут 11111111 (8 единичек), потому что это - не что иное, как представление шестнадцатиричного числа FF в двоичной системе счисления:
$x = base_convert("FF",16,2); //$x = 11111111
$x = base_convert("11111111",2,16); //$x = FF
$x = base_convert("200",10,16); //$x = C8

bindec Производит конвертацию двоичного числа в десятичное.
Синтаксис : int bindec(string binary_string)
Преобразует двоичное число, заданное в строке binary_string, в десятичное число. Максимальное число, которое еще может быть преобразовано, равно 2 147 483 647
$x = bindec(11111111); // $x = 255
$x = bindec(10101010); // $x = 170
$x = bindec(2147483647); // $x = 1111111111111111111111111111111

decbin Производит конвертацию десятичного числа в двоичное.
Синтаксис : string decbin(int $number)
Возвращает строку, представляющую собой двоичное представление целого числа $number. Максимальное число, которое еще может быть преобразовано, равно 2 147 483 647, которое выглядит как 31 единичка в двоичной системе.
Существует аналогичные функции для восьмеричной и шестнадцатиричной систем. Называются они так же, только вместо "bin" подставляются соответственно "oct" и "hex".
$x = decbin(255); // $x = 11111111
$x = decbin(2147483647); // $x = 1111111111111111111111111111111

dechex Производит конвертацию десятичного числа в шестнадцатеричное.
Синтаксис : string dechex(int number)
Возвращает строку, представляющую собой шестнадцатеричное представление целого числа number. Максимальное число, которое еще может быть преобразовано, равно 2 147 483 647
$x = dechex(2147483647); // $x = 7fffffff
decoct Производит конвертацию десятичного числа в восьмеричное.
Синтаксис : string decoct(int number)
Возвращает строку, представляющую собой восьмеричное представление целого числа number. Максимальное число, которое еще может быть преобразовано, равно 2 147 483 647
$x = dechex(2147483647); // $x = 17777777777

hexdec Производит конвертацию шестнадцатеричного числа в десятичное.
Синтаксис : int hexdec(string hex_string)
Преобразует шестнадцатеричное число, заданное в строке hex_string, в десятичное число. Максимальное число, которое еще может быть преобразовано, равно 7fffffff
$x = hexdec(7fffffff); // $x = 2147483647
octdec Производит конвертацию восьмеричного числа в десятичное.
Синтаксис : int octdec(string octal_string)
Преобразует восьмеричное число, заданное в строке octal_string, в десятичное число. Максимальное число, которое еще может быть преобразовано, равно 17777777777
$x = octdec(17777777777); // $x = 2147483647

deg2rad Производит конвертацию градусов в радианы.
Синтаксис : double deg2rad(double number)
Преобразует градусы, заданные в параметре number, в радианы.
rad2deg Производит конвертацию радианов в градусы.
Синтаксис : double rad2deg(double number)
Преобразует радианы, заданные в параметре number, в градусы.

Форматирование числа.

number_format Форматирование числа.
Синтаксис : number_format($number, $decimals, $dec_point=".", $thousands_sep=",");
Эта функция форматирует число с плавающей точкой с разделением его на триады с указанной точностью. Она может быть вызвана с двумя или четырьмя аргументами, но не с тремя! Параметр $decimals задает, сколько цифр после запятой должно быть у числа в выходной строке. Параметр $dec_point представляет собой разделитель целой и дробной частей, а параметр $thousands_sep - разделитель триад в числе (если указать на его месте пустую строку, то триады не отделяются друг от друга).

Минимум и максимум min Эта функция возвращает наименьшее из чисел, заданных в ее аргументах.
Синтаксис : mixed min(mixed $arg1 [int $arg2, ..., int $argn])
Различают два способа вызова этой функции: с одним параметром или с несколькими. Если указан лишь один параметр (первый), то он обязательно должен быть массивом и возвращается минимальный элемент этого массива. В противном случае первый (и остальные) аргументы трактуются как числа с плавающей точкой, они сравниваются, и возвращается наименьшее. Тип возвращаемого значения выбирается так: если хотябы одно из чисел, переданных на вход, задано в формате с плавающей точкой, то и результат будет с плавающей точкой, в противном случае результат будет целым числом. С помощью этой функции нельзя лексографически сравнивать строки - только числа.

$x = min(5,3,4,6,5,6,8,9); // $x = 3
$x[0]=4;
$x[1]=1;
$x[2]=5;
$x[3]=2;
echo min($x); // выведет 1
max Получение наибольшего аргумента.
Синтаксис : mixed max(mixed $arg1 [int $arg2, ..., int $argn])
Функция работает аналогично min(), только ищет максимальное значение.
$x = max(5,3,4,6,5,6,8,9); // $x = 9
$x[0]=4;
$x[1]=1;
$x[2]=5;
$x[3]=2;
echo max($x); // выведет 5

Степенные функции

sqrt Возвращает квадратный корень из аргумента.
Синтаксис : float sqrt(float $arg)
Если аргумент отрицателен, то генерируется предупреждение, но работа программы не прекращается!
$x = sqrt(9); // $x = 3
echo sqrt(25); // выведет 5
echo sqrt(-25); // выведет -1.#IND
log Возвращает натуральный логарифм аргумента.
Синтаксис : float log(float $arg)
В случае недопустимого числа печатает предупреждение, но не завершает программу.
$x = log(exp(2)); // exp(2) - e в степени 2 // $x = 2
$x = log(M_E); // $x = 1
echo log(10); // выведет 2.302585092994
log10 Возвращает десятичный логарифм аргумента.
Синтаксис : float log10(float $arg)
В случае недопустимого числа печатает предупреждение, но не завершает программу.
echo log10(100); // выведет 2
exp Возвращает e (2,718281828) в степени $arg.
Синтаксис : float exp(float $arg)
$x = exp(1); // $x = 2.718281828459
pow Возведение в степень.
Синтаксис : float pow(float $base, float $exp)
Возвращает $base в степени $exp.
$x = pow(3,2); // $x = 9
$x = pow("3",2); // $x = 9