Связь и интернет Архив Программирование
   
Сделать стартовойСделать закладку            
   ПОИСК  
   
Главная / PHP / Руководство по РНР 3.0 /
8  Perl
8  PHP
8  JavaScript
8  HTML
8  DHTML
8  XML
8  CSS
8  C / C++
8  Pascal и Delphi
8  Турбо Ассемблер
8  MySQL
8  CASE-технологии
8  Алгоритмы
8  Python
8  Обратная связь
8  Гостевая книга
Новости о мире


Элементы языка - Программирование от RIN.RU
Элементы языка


Любой скрипт PHP состоит из последовательности операторов. Оператор может быть присваиванием, вызовом функции, циклом, условным выражением или пустым выражением (ничего не делающим). Операторы обычно заканчиваются точкой с запятой. Также операторы могут быть объединены в группу заключением группы операторов в фигурные скобки. Группа операторов также является оператором. В этой части описаны различные типы операторов.


Константа


PHP определяет несколько констант и предоставляет механизм для определения Ваших констант. Константы похожи на переменные, но они имеют слегка измен?нный синтаксис.


Предопределённые константы - это __FILE__ and __LINE__, которые соответствуют имени файла и номеру строки, которая выполняется в настоящий момент.


Пример 1. Использование __FILE__ и __LINE__


<?php
function report_error($file, $line, $message) {
echo "An error occured in $file on line $line: $message.";
}


report_error(__FILE__,__LINE__, "Something went wrong!");
?>


Вы можете определить дополнительные константы с помощью функций define() и undefine() .


Пример 2. Описание констант


<?php
define("CONSTANT", "Hello world.");
echo CONSTANT; // outputs "Hello world."
undefine ("CONSTANT");
?>




Выражения


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


Простейший пример, приходящий на ум это константы и переменные. Когда вы печатаете "$a = 5", вы присваиваете значение "5" переменной $a. "5", очевидно, имеет значение 5, иными словами"5" это выражение со значением5 (в данном случае"5" это целочисленная константа).


После этого присваивания вы считаете значением $a 5, также, если вы напишете $b = $a, вы будете ожидать того же как, если бы вы написали $b = 5. Другими словами, $a это также выражение со значением 5. Если вс? написано правильно, то именно так оно и случиться.


Несколько более сложные примеры выражений - это функции. К примеру, подумайте на следующей функцией :


function foo () {
return 5;
}


Подразумевая, что вы знакомы с концепциями функции (если нет, взгляните на часть, посвящ?нную функциям), вы считаете, что $c = foo() это практически то же самое, что написать $c = 5 и вы правы. Функции - это выражения с тем значением, которое они возвращают. Так как foo() возвращает 5, значение выражение "foo()" - 5. Обычно функции подсчитывают возвращаемое значение,а не возвращают постоянное значение.


Конечно, значения в PHP не обязаны быть целыми и зачастую они не являются таковыми. PHP поддерживает 3 скалярных типа значений : целое, число с плавающей точкой и строки ( скалярные выражения вы не можете "разбить" на более маленькие части, как, к примеру, массивы). PHP поддерживает 2 составных (нескалярных) типа : массивы и объекты. Каждое из таких значений может быть присвоено переменной или возвращено функцией.


Итак, пользователи PHP/FI 2 не должны почувствовать каких-то перемен. PHP это язык, ориентированный на выражения, практически вс? является выражениями.Обратимся к примеру, с которым мы уже разобрались, "$a = 5". Легко заметить, что тут задействованы два значения - значение целой константы 5 и значение $a, которое также становиться равным 5.На самом деле здесь присутствует ещ? одно значение, значение самого присваивания. Само присваивание становиться равным присваиваемому значению, в данном случае - 5.На практике это означает, что "$a = 5", не обращая внимания на то, что оно равно выражению со значением 5. То есть, запись типа "$b = ($a = 5)" похожа на запись"$a = 5; $b = 5;" (точка с запятой отмечает конец выражения). Так как присваивания рассматриваются справа налево, вы также можете написать "$b = $a = 5".


Другой хороший пример направления выражения это прежварительное и последующее увеличение и уменьшение. Рользователи PHP/FI 2 и многих других языков могут быть знакомы с записями variable++ and variable--. Это операторы увеличения и уменьшения. В PHP/FI 2, оператор "$a++" не имеет значения(не является выражением), поэтому вы не можете его присвоить или использовать как-либо иначе. PHP расширяет возможность увеличения/уменьшения делая его выражением, как и в C. В PHP, подобно C, есть 2 типа инкремента - предварительный и последующий. И предыдущий и последующий инкремент увеличивает значение переменной и воздействие на переменную идентично.Разница в значении выражения инкремента. Предыдущее увеличение, которое записывается как "++$variable", приравнивается увеличенной переменной (PHP увеличивает переменную до того, как прочитать е? значение). Post-increment, which is written "$variable++" evaluates to the original value of $variable, before it was incremented (PHP increments the variable after reading its value, thus the name "post-increment").


Очень распростран?нный тип выражений это выражения сравнения. Эти выражения имеют значение 0 или 1 (означает ложь или истину соответственно). PHP поддерживает > (больше, чем), >= ( больше или равно), = (равно), < (меньше,чем) и <= (меньше или равно). Эти выражения в основном используются внутри условий, например оператора IF.


Последний пример выражений, с которыми мы разбер?мся, это совмещ?нные выражения оператор-присваивание. Вы уже знаете, что для того, чтобы увеличить значение $a на еденицу, вы можете написать "$a++" или "++$a". Но если следует увеличить значение больше, чем на еденицу, к примеру - на 3? Вы можете написать "$a++" несколько раз, но это не очень удобно и эффективно. Намного больше распространено написание "$a = $a + 3". "$a + 3" вычисляется, как значение $a плюс 3, а затем присваивается переменной $a, в результате чего значение $a увеличивается на 3. В PHP, также как и в ряде других языков типа C, вы можете записать это короче, что со временем бывает проще и быстрее также и для понимания. Добавление 3 к текущему значению $a может быть записано как "$a+=3". Это значит следующее : "возьми значение $a, добавь к нему 3 и присвой это обратно $a. Кроме того, что это быстрее и понятнее, такой тип выражений быстрее исполняется. Значение "$a+=3" как и значение обычного присваивания это присвоенное значение. Заметьте, что оно не равно 3, а является общим значением $a и 3. Любой бинарный (имеющий 2 операнда - прим. пер.) оператор может быть записан таким методом, например : "$a-=5" (вычесть 5 из значения $a), "$b*=7" (умножиить значение $a на 7) и так далее.


Есть ещё такое выражение, которое может показаться незнакомым, если вы не встречались с ним в других языках - условный оператор с тремя операндами :


$first ? $second : $third


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


Этот пример должен помочь Вам лучше понять предварительное и последующее увеличение и вообще выражения ?


function double($i) /* функция удваивания переменной */
{
return $i*2;
}
$b = $a = 5; /* присваиваем значения переменым $a и $b */
$c = $a++; /* последующее увеличение, присваиваем $c начальное значение $a (5)*/
$e = $d = ++$b; /* предварительное увеличение, присваиваем $d и $e увеличенное значение$b (6) */
/* тут и $d и$e равны6 */
$f = double($d++); /* присвоить удвоенное значение $d до его увеличения, то есть 2*6 = 12, переменной $f*/
$g = double(++$e); /* присвоить удвоенное значение $e после его увеличения, то есть 2*7 = 14, переменной g */
$h = $g += 10; /* сначала увеличить значение $g на 10, что даёт в результате 24,
а затем присвоить это значение переменной $h, что также даёт 24 */


В начале главы мы сказали, что объясним различные типы операторов и, как и было обещано выражения могут быть операторами. Впрочем, не каждое выражения является оператором. В данном случае оператор имеет форму "выражение" ";", то есть выражение, за которым следует точка с запятой. В "$b=$a=5;" $a=5 это правильное выражение, но само по себе оно не является оператором. А вот "$b=$a=5;" является правильным оператором.


Ещё одна вещь, которую нужно упомянуть - это логические значения выражений. Во многих случаях, в основном в условных операторах и операторах циклов, вы не заинтересованы в конкретных значениях выражений, а только являются ли их значения TRUE или FALSE (в PHP нет специального типа boolean). Логические значения вычисляются примерно так же, как я в языке Perl. Любое не нулевое целое значение - это TRUE, ноль - это FALSE. Обратите внимание на то, что отрицательные значения - это не ноль и поэтому они считаются равными TRUE. Пустая строка и строка "0" это FALSE; все остальные строки - TRUE. И насч?т составных типов (массивы и объекты) - если значение такого типа не содержит элементов, то оно считается равным FALSE; иначе подразумевается TRUE.


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


Вперед  >>>
 1  2  3  4  5 


 8  Комментарии к статье  8 8  Обсудить в чате

8  В тему

Введение в PHP3

Возможности PHP3

Установка

Конфигурация

Синтаксис и грамматика

Выражения

Справочник функций

 
  
  
    Copyright ©  RIN 2003 - 2004      * Обратная связь