Выпуск № 8. Управляющие структуры.

24.08.2008

Доброго времени суток!

Извините, что так долго не выходил на связь, заканчивал проект, не было свободного времени. :( Но теперь мы с новыми силами продолжим изучать PHP. :)

Для тех, кто уже подзабыл, :) что мы изучали в предыдущих выпусках, зайдите в архив.

А в этом выпуске мы рассмотрим:

Управляющие структуры

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

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

А начнем изучение управляющих структур с условных операторов.

Условный оператор if

В общем виде условный оператор if выглядит так:

if (условие)
{
  /* Код, выполняемый если условие истинно */
}
else
{
  /* Код, выполняемый если условие ложно */
}

Где условие - это выражение, возвращающее булевское значение (ниже мы рассмотрим что это такое).

Однострочная версия оператора if выглядит так:

If (условие) /* Код, выполняемый если условие истинно */

Оператор if в PHP - наиболее фундаментальная управляющая структура, предназначенная для выполнения того, что называется блоком кода, в том и только в том случае, когда условное выражение возвращает булевское значение “истина”. В таблице ниже приведены примеры, когда булевское выражение равно либо true (”истина”), либо false (”ложь”).

Пример операции Действие
$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 => $b true, если $a больше или равно $b
Пример.
<?php
  $answer = (5 > 7);  /* $answer = false */
  $answer = (6 <= 7); /* $answer = true */
?>

Условный оператор может быть вложенным, т.е. использоваться внутри другого оператора if. Например:

<?php
  if ( $a > 0 )
  {
    if ( $a <= 10)
      echo 'Значение $a находиться между 1 и 10';
    else
    {
      if ( $a <= 20)
        echo 'Значение $a находиться между 11 и 20';
      else
        echo "Значение $a находиться больше 20";
    }
  }
?>

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

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

Операция Действие
$a and $b true, если $a и $b истинны.
$a or $b true, если $a или $b истинны.
$a xor $b true, если $a или $b истинны (но не оба сразу).
!$a true, если $a ложно.
$a && $b true, если $a и $b истинны.
$a || $b true, если $a или $b истинны.

Несмотря на то что они выглядят идентично, операции and и or - не тоже самое, что && и ||. Операции and и or выполняются раньше, чем && и ||. Поэтому следует использовать скобки для разграничения приоритетов операций.

<?php
  $answer = ($a < $b) || ($c > $d); /* хорошо */
  $answer = $a < $b || $c > $d;     /* плохо */
?>

Условный оператор switch

Теперь рассмотрим конструкцию switch. Это упрощенный способ выполнения задач, которые можно выполнить с помощью оператора if. Назначение switch - позволить разработчику присваивать блок кода каждому из множества разных возможных случаев, которые может принимать управляющая переменная.

<?php
  switch ($var)
  {
    case 0:
      echo 'Переменная равна 0';
    break;
    case 1:
      echo 'Переменная равна 1';
    break;
    default:
      echo 'Условие по-умолчанию';
  }
?>

При использовании оператора switch представляется единственная переменная, значение которой сравнивается с теми, которые указаны в каждом индивидуальном предложении case.

Эта конструкция switch, аналогична выражению:

<?php
  if ( $var == 0 )
  {
    echo 'Переменная равна 0';
  }
  else
  {
    if ( $var == 1)
      echo 'Переменная равна 1';
    else
      echo 'Условие по-умолчанию';
  }
?>

На этом сегодня все. До скорых встреч на страницах рассылки :)

Автор: Скибардин Андрей.

ICQ: 409-459-097
E-mail: skybard@mail.ru
Сайт: http://www.phpdesign.naxx.ru - “Все для разработчика на PHP”

Выпуск 7. Константы.

30.07.2008

Доброго времени суток!

Сегодняшний выпуск будет коротким и поговорим мы о константах в PHP.

Что такое константа

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

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

Синтаксис констант

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

Чтобы получить значение константы нужно указать ее имя. В отличие от переменных, имя константы не нужно предварять символом $. Для того, чтобы проверить, определена ли константа, используйте функцию defined().Вы можете определить и использовать константу в любом месте вашего скрипта.

Примеры констант.
<?php
  define("VAR_INTEGER", 234 );
  define("VAR_FLOAT", 2.34 );
  define("VAR_BOOL", true );
  define("VAR_STRING", "Я строка!" );

  /*
    Если константа VAR_INTEGER определена
    выводим ее значение.
   */
  if ( defined('VAR_INTEGER') )
    echo VAR_INTEGER . "<br>";

  echo VAR_FLOAT . "<br>";   // выводит 2.34
  echo VAR_BOOL . "<br>";    // выводит 1. true = 1.
  echo VAR_STRING;           // выводит "Я строка!"

?>

Еще раз рассмотрим различия между константами и переменными:

  • У констант нет приставки в виде знака доллара ($);
  • Константы можно определить только с помощью функции define(), а не присваиванием значения;
  • Константы могут быть определены и доступны в любом месте без учета области видимости;
  • Константы не могут быть определены или аннулированы после первоначального объявления; и
  • Константы могут иметь только скалярные значения.

Предопределенные константы

PHP предоставляет большой список предопределенных констант (т.е. их не нужно предварительно объявлять при помощи функции define()) для каждого выполняемого скрипта. Но мы рассмотрим с вами только две. Эти константы еще называются “волшебными” константами, потому что они могут менять свое значение в зависимости от контекста, в котором они используются! На самом деле это не настоящие константы, а специальные метки, которые обрабатываются PHP особым образом. Специальные константы нечувствительны к регистру.

  1. __LINE__ - Определяет текущую строку в файле. Т.е. зависит от строки в скрипте, на которой эта константа указана. Эту константу можно применять, например, для отображения номера строки в которой произошла ошибка при выполнении скрипта.
  2. __FILE__ - Определяет полный путь и имя текущего файла. Может использовать в различных ситуациях, где нужно использовать путь и/или имя файла.
“Волшебные” константы.
<?php
  /*
    Выводит 2, т.к. на первой строке
    находиться <?php
   */
  echo "Строка под номером" . __LINE__ . "<br>";
  echo __FILE__; // выводит путь и имя файла
?>

На этом пока все!

Подписаться на рассылку Вы можете здесь.

Автор: Скибардин Андрей.

ICQ: 409-459-097
E-mail: skybard@mail.ru
Сайт: http://www.phpdesign.naxx.ru - “Все для разработчика на PHP”

Выпуск 6. Манипуляции с переменными.

30.07.2008

Доброго времени суток!

Поздравляю всех своих подписчиков с тем, что рассылка “Изучай PHP вместе с нами!” перешла в категорию “Серебряные” на сервисе Subscribe.ru. Ваши поздравления шлите сюда. :)

А теперь приступим к работе. :) Продолжим изучать основы PHP и рассмотрим такие темы:

Манипуляция с переменными

В прошлом выпуске вы познакомились с основными типами данных в PHP. Давайте теперь рассмотрим, что мы можем с ними делать. Как можно было ожидать, PHP поддерживает все базовые математические операции, как и любой другой язык программирования, включая сложение и умножение, а также широкий диапазон тригонометрических и логарифмических функций, Помимо математических операций PHP поддерживает большой объем функций манипуляции со строками.

Математические операции

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

Простые вычисления с переменными PHP.
<?php
  $var = 3 + 6;      /* $var теперь равно 9 */
  $var = $ var - 5;  /* $var теперь равно 4 */
  $var = $ var /2;   /* $var теперь равно 2 */
  $var = 1/3;        /* $var равно 0.333 */

  /*
    $var равно 3. % - это операция деления по модулю.
    Применяется для вычисления остатка от
    целочисленного деления. В нашем примере 10%7=3.
  */
  $var = ((3 + 2)*2)%7;
?>

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

Как и в большинстве других С-подобных языках программирования, в PHP поддерживаются сокращенные формы записи операций. Рассмотрим вторую и третью строки из примера выше. Там результат математической операции помещается в ту же переменную, которая служит операндом. Вместо этого можно писать так:

Сокращенная форма записи.
<?php
  $var = 5;   /* начальное значение $var = 5 */
  $var += 3;  /* $var теперь равно 8 */
  $var *= 2;  /* $var равно 16 */
  $var %= 6;  /* $var равно 4 */
?>

Для еще большего упрощения можно использовать операции инкремента и декремента следующего вида:

Инкремент и декремент.
<?php
  $var++;
  $var--;
  ++$var;
?>

На заметку.
Несмотря на точно выражения $var++ и ++$var выполняют одно и то же действие, прибавляют к переменной $var единицу, делают они это по разному. $var++ увеличивает переменную $var после выполнения оператора, а ++$var увеличивает переменную перед выполнением. Рассмотрим на примере:

<?php
  $var = 5;
  echo (++$var) . " ";
  echo "$var<br>";
  $var = 5;
  echo ($var++) . " ";
  echo "$var";
?>

Результат будет таким:

  6 6
  5 6

Наряду с простой математикой PHP поддерживает тригонометрические и логарифмические операции, для сложных вычислений. Например, так:

<?php
  $cos = cos(2*M_PI); /* косинус 2*PI равен 1 */
?>

На заметку.
M_PI - это предопределенная константа, хранящая значение Пи. Полный список математических функций и констант можно посмотреть на php.net/math.

Функции для работы со строками

Функции работы со строками будут рассмотрены в отдельном выпуске (одна большая тема). Но одну из них мы уже использовали - функция конкатенации (соединения) строк. Эта операция обозначается символом точки:

Конкатенация строк.
<?php
  $string = 'Я изучаю ';
  /* $newstring = 'Я изучаю PHP!' */
  $newstring = $string . 'PHP!';
?>

На этом пока все. Если у вас возникли вопросы пишите мне. Контакты внизу.

Подписаться на рассылку Вы можете здесь.

Автор: Скибардин Андрей.

ICQ: 409-459-097
E-mail: skybard@mail.ru
Сайт: http://www.phpdesign.naxx.ru - “Все для разработчика на PHP”

Выпуск 5. Базовые типы данных в PHP.

30.07.2008

Доброго времени суток!

Продолжаем изучать основы PHP. Сегодня мы рассмотрим базовые типы данных в PHP. А именно:

Целые числа

Целые числа - фундаментальный числовой тип PHP, предоставляющий значения со знаком величиной чуть более 2 миллиардов. На практике PHP воспринимает целые значения с использованием трех математических представлений: десятичные, восьмеричные, шестнадцатеричные.

Виды представления целых чисел.
<?php
  /* десятичный вид */
  $int = 50;
  /* тоже в восьмеричной нотации (начинается с цифры "0") */
  $int = 062;
  /* шестнадцатеричный вид */
  $int = 0x32;
?>

Действительные числа с плавающей точкой

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

Виды представления действительных чисел с плавающей точкой.
<?php
  /* Стандартная нотация с десятичной точкой */
  $float = 5.1;

  /*
    То же число в экспоненциальном представлении
    с плавающей точкой
   */
  $float = .051e2;
?>

Строковый тип данных

Вы уже сталкивались с применением строк в предыдущих выпусках рассылки, где клиенту (браузеру) отправлялась строка “Здравствуй, Андрей”. Однако строки это нечто большее, нежели то, что демонстрируется в этом простом примере. Для начала отмечу то, что существует два типа строк: разбираемые (parsed) и не разбираемые (unparsed).

Разбираемые строки определяются при помощи двойных кавычек и разбираются (обрабатывается) PHP, в то время как не разбираемые представлены в одинарных кавычках и используются, как они есть. Что это означает? Когда строка определена в двойных кавычках, любая ссылка на переменную внутри такой строки автоматически заменяется ее значением, тогда как для не разбираемых строк такая подстановка не производится. Различие показывает данный пример.

Разбираемые и не разбираемые строки.
<?php
  $var = 150;
  $string_one = "Значение переменой = $var<br>";
  $string_two = 'Значение переменой = $var<br>';

  echo $string_one;
  echo $string_two;
?>

Запустите скрипт и посмотрите на результат. Он должен быть таким:

Результат подстановки.
Значение переменой = 150
Значение переменой = $var

Как вы видите, несмотря на то, что содержимое строк идентично, $string_one подвергается разбору PHP, и содержащаяся в ней ссылка на переменную $var заменяется соответствующим значением этой переменой. Это отличает ее от переменной $string_two, которая не разбирается PHP, поэтому часть $var в ней остается неизменной.

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

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

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

Некоторые управляющие символы.
\n - символ перевода строки
\r - символ возврата каретки
\t - символ горизонтальной табуляции
\\ - символ обратного слеша
\$ - символ $
\' - символ одинарной кавычки
\" - символ двойной кавычки

Примеры с управляющими символами.
<?php
  /* неверная строка, не работает в PHP */
  $var = "Знаете ли вы что такое "управляющие" символы?";

  /* Правильно сформатированная строка */
  $var = "Знаете ли вы что такое \"управляющие\" символы?";

  /* Одинарные кавычки внутри двойных */
  $var = "Знаете ли вы что такое 'управляющие' символы?";

  /* Двойные кавычки внутри одинарных */
  $var = 'Знаете ли вы что такое "управляющие" символы?';
?>

На этом сегодня все! До скорой встречи на страницах рассылки!

Подписаться на рассылку Вы можете здесь.

Автор: Скибардин Андрей.

ICQ: 409-459-097
E-mail: skybard@mail.ru
Сайт: http://www.phpdesign.naxx.ru - “Все для разработчика на PHP”

Выпуск 4. Базовый синтаксис PHP.

30.07.2008

Доброго времени суток!

Сегодня в выпуске:

Базовый синтаксис PHP

Давайте для начала вспомним код примера, который мы рассмотрели в прошлом выпуске.

Пример php-скрипта.
<HTML>
<HEAD><TITLE>Мой первый скрипт на PHP.</TITLE></HEAD>
<BODY>
  <?php
    $name = 'Андрей';
    echo 'Здравствуй, ' . $name;
  ?>
</BODY>
</HTML>

Разберем этот пример.

Все PHP сценарии пишутся в виде блоков кода. Эти блоки могут быть встроены прямо в HTML код, и обычно определяются при помощи тегов <?php в начале и ?> - в конце. В нашем примере первые три строки игнорируются интерпретатором PHP. Начиная с тега <?php идет PHP код. Код выводит в браузер сообщение “Здравствуй, Андрей”. Все что находится после тега ?> вновь воспринимается как HTML текст.

Сообщение выводится в браузер при помощи базового оператором PHP - echo. Он служит для отправки содержимого клиенту (браузеру). Этим оператором вы будете пользоваться очень часто :). Оператору передается строка “Здравствуй, ” плюс содержимое переменной $name (’Андрей’). Получается строка “Здравствуй, Андрей”. Точка в этом выражении служит для соединения двух строк.

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

Переменные

В PHP имена переменных всегда начинаются с символа $ и содержат произвольную комбинацию символов, при условии, что первый символ после $ будет буквой или знаком подчеркивания. В число допустимых символов входят заглавные и прописные латинские буквы, а также символы с ASCII - кодами в диапазоне от 127 до 255. В нашем примере $name - это переменная, в которой храниться строка “Андрей”.

Примеры переменных.
<?php
  /* присвоение строки 'foo' */
  $mayvar = 'foo';
  /* неверно, нет символа $ */
  badvar = 'test';
  /* неверно, нельзя использовать ( и ) */
  $another(test)var = 'bad';
  /* правильно */
  $php5 = 'is very cool';
  /* неверно, начинается с цифры */
  $5php = 'is wrong';
?>

Комментарии в скриптах

В PHP все, что находится между /* и */, трактуется как комментарий, используемый для пояснения в теле сценария, и игнорируется интерпретатором. Для однострочных комментариев также может применяться //. Все что находиться после // считается комментарием.

Примеры комментариев.
<?php
  $var = 'foo';   /* комментарий */
  $var = 'test';  // тоже комментарий
?>

Типизация переменных

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

Разный тип переменных.
<?php
  /* переменная целого типа */
  $var = 122;
  /* строковая переменная */
  $var = 'Строка';
  /* действительная переменная с плавающей точкой */
  $var = 1.23;
?>

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

Подписаться на рассылку Вы можете здесь.

Автор: Скибардин Андрей.

ICQ: 409-459-097
E-mail: skybard@mail.ru
Сайт: http://www.phpdesign.naxx.ru - “Все для разработчика на PHP”