САЙТЫ  ПОД  КЛЮЧ
ОНЛАЙН-СЕРВИСЫ СПРАВОЧНИКИ SEO-ИНСТРУМЕНТЫ РАЗВЛЕЧЕНИЯ

Основы PHP

pic.gif

Оглавление

pic.gif
  1. Основы PHP
  2. Операторы языка PHP
  3. Строковые функции
  4. Массивы
  5. Функции
  6. Работа с файлами
  7. Регулярные выражения
  8. Сессии и cookies в PHP
  9. Работа с FTP
  10. Проверка данных
  11. Гостевая книга
  12. PHP и MySQL


book.gif

Основы PHP

pic.gif
pic.gif
arrowleft.gif Предыдущая Следующая arrowright.gif

Операторы

Арифметические операторы

+ Сложение
- Вычитание
* Умножение
/ Деление
% Вычисление остатка по модулю (к примеру: 5 % 2=1)

Поразрядные операторы

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

& Поразрядная конъюнкция (AND)
| Поразрядная дизъюнкция (OR)
^ Поразрядное исключающее ИЛИ (XOR)
~ Поразрядное отрицание (NOT)
<< Сдвиг влево битового представления значения левого целочисленного операнда на количество разрядов, равное значению правого целочисленного операнда
>> Сдвиг вправо битового представления значения левого целочисленного операнда на количество разрядов, равное значению правого целочисленного операнда

Пример:

<?
   echo(4<<2); // равно 16 
   echo"<br>"; 
   echo(5>>1); // равно 2
   echo"<br>"; 
   echo(6&5); // равно 4
   echo"<br>"; 
   echo(6|5); // равно 7
   echo"<br>"; 
   echo(6^5); // равно 3
>?

Разберем первый пример. Двоичный код для 4 равен 100, при сдвиге влево на 2 разряда код 100 становится равным 10000, что соответствует десятичному значению 16. Остальные примеры могут быть разобраны аналогично. Обратим внимание на то, что сдвиг влево на n позиций эквивалентен умножению на 2n, а сдвиг вправо уменьшает соответствующее значение в 2n раз с отбрасыванием дробной части результата (поэтому 5>>1 равно 2). Основное назначение этих операторов – быстрые вычисления. Так как их поддержка осуществляется на аппаратном уровне (процессор), алгоритмы, выполненные с использованием данных операторов получаются очень производительными.

Логические операторы

or или || ИЛИ
Xor исключающее ИЛИ
and или && И
! НЕ

Операторы этой группы, в отличие от поразрядных, работают с логическими переменными (boolean) и интенсивно используются в управляющих конструкциях: циклы и условия. Логические переменные, или более правильно, переменные типа Boolean имеют лишь два значения: true(истина) и false(ложь). В выражениях true и false можно заменить на 1(любое отличное от 0 число) и 0, соответственно. Возможность замены true и false на 1 и 0 – это «наследство» языка С, в котором не было специальных переменных true и false.

Логически операторы для переменных типа Boolean выполняют роль операторов сложения, вычитания для обычных переменных. Рассмотрим несколько примеров, если их смысл Вам не очень понятен – не расстраивайтесь, просто вернитесь сюда, прочитав главу 2. Оператор if(cond) проверяет условие cond, если его значение true – выполняется код в фигурных скобках, следующий за if, если false – код после оператора else. Если cond равен false – всё наоборот.

<php
   $flag = true; // Истина
   if($flag)
   {
      echo "<p>Переменная flag имеет значение true</p>";
   } else {
      echo "<p>Переменная flag имеет значение false</p>";
   }
?>

Результаты работы скрипта выглядят следующим образом:

Переменная flag имеет значение true

Если теперь заменить строчку

    $flag = true; // Истина
    на
    $flag = false; // Ложь

Результат, выдаваемый тэгом измениться:

Переменная flag имеет значение false

Т.е. мы зашли в блок else, так как в операторе if условие ложно.

Когда условие одно, как видите, всё просто. Когда условий больше - в дело вступают логические операторы:

<php
   $flag1 = true; // Истина
   $flag2 = true; // Истина
   if($flag1 && $flag2) // И $flag1 И $flag2 истины
   {
      echo "<p>Условие: true (Оба флага истины)</p>";
        // Да
   } else {
      echo "<p>Условие: false (Один из флагов ложен)</p>"; 
        // Нет, один или оба ложны
   }
?>

Этот скрипт выведет: Условие: true (Оба флага истины). Если хотя бы один из операторов окажется равным false (или оба сразу) – будет выведено: Условие: false (Один из флагов ложен).

Обязательно попробуйте поиграть с условиями: если вы не будете разбираться в условных операторах – Вы никогда не будете хорошим программистом ни на одном языке программирования. Если Вы считаете, что Вам не нужны условные операторы – Вам не нужен язык программирования.

Заменим && (И) на || (ИЛИ)

<php
   $flag1 = true; // Истина
   $flag2 = false; // Истина
   if($flag1 || $flag2) 
      // Хоть кто-то из двух флагов($flag1 $flag2) истинен
   {
      echo "<p>Условие: true (Один из флагов истин)</p>"; 
      // Да
   } else {
      echo "<p>Условие: false (Оба флага ложны)</p>"; 
      // Нет оба имеют значение false
   }
?>

Опять получаем: Условие: true.

Для И и ИЛИ, как видим, возможны два варианта операторов, причем эти операторы с разными приоритетами. Приоритетность выполнения логических операторов: or > xor > and > || > && > ! Иногда в условиях удобно использовать скобки для явного задания приоретета:

<php
   $flag1 = true;
   $flag2 = true;
   $flag3 = false;
   if( $flag1 && $flag2 || $flag3)
   {
      echo "<p>Условие истинно<p>";
   }
   else
   {
      echo "<p>Условие ложно<p>";
   }
?>

Результатом будет вывод фразы «Условие истинно», так как согласно приоритету исполнения сначала выполняется оператор &&, так как оба флага равны true – возвращается true, затем это выражение сравнивается с $flag3 (true || $flag3) – что возращает тоже true, так как одно из сравниваемых равно true.

Если же мы запишем

<php
   $flag1 = true;
   $flag2 = true;
   $flag3 = false;
   if($flag1 && ($flag2 || $flag3))
   {
      echo "<p>Условие истинно<p>";
   }
   else
   {
      echo "<p>Условие ложно<p>";
   }
?>

результатом будет «Условие ложно».

Вообще программисты не любят запоминать порядок приоритетов, поэтому для того чтобы Ваш код легко читался (в том числе и Вами) лучше всегда использовать скобки. Т.е. в первом скрипте лучше записать if(($flag1 && $flag2) || $flag3) – тогда сразу становиться понятно, что имеется ввиду.

Иногда нужно проверить условие безальтернативно, например, на ложность или истинность. Допустим, функция (func()) возвращает истину или ложь и в зависимости от этого нужно вывести на страничку те или иные теги. Например, функция mysql_query($query) – возвращает true если запрос к базе данных mySQL, размещённый в строке $query успешно выполнился и false – в противном случае.

Если Вам нужно среагировать только на удачное обращение, Вы можете записать:

<php
   if(mysql_query($query))
   {
      echo "<p>Данные успешно занесены в базу данных.<p>";
   }
?>

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

<php
   if(mysql_query($query))
   {}
   else
   {
      echo"<p>Данные не были занесены в базу данных.<p>";
   }
?>

Но это не элегантный, запутывающий способ – здесь самое время воспользоваться оператором отрицания: !, применение которого к переменной меняет её значение с true на false, а false на true:

<php
   if(!mysql_query($query))
   {
      echo"<p>Данные не были занесены в базу данных.<p>";
   }
?>
linebook1.gif
arrowleft.gif Предыдущая Следующая arrowright.gif
linebook2.gif

 
  Наверх


 

Это интересно

До 1992 года коммерческое использование интернета было запрещено. После этого Конгресс США принял закон, который открыл доступ во Всемирную сеть абсолютно всем людям.


Наши реквизиты
WMID: 309688839848
WMR: R325885159214
E-mail: 
  BL:Бизнес-уровень [BL]
QR-код сайта
Онлайн-радио
Больше радиостанций