Операции в PHP

Операции в PHP

Последнее обновление: 1.11.2015

В PHP мы можем использовать различные операторы: арифметические, логические и т.д. Рассмотрим каждый тип операций.

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

  • + (операция сложения)

    Например, $a + 5
  • — (операция вычитания)

    Например, $a - 5
  • * (умножение)

    Например, $a * 5
  • / (деление)

    Например, $a / 5
  • % (получение остатка от деления)

    Например:
    
    $a=12;
    echo $a % 5; // равно 2
    
  • ++ (инкремент/ увеличение значения на единицу)

    Например, ++$a

    Важно понимать разницу между выражениями ++$a и $a++. Например:

    
    $a=12;
    $b=++$a; // $b равно 13
    echo $b;
    

    Здесь сначала к значению переменной $a прибавляется единица, а затем ее значение приравнивается переменной $b. Иначе было бы, если бы выражение выглядело так:

    $b=$a++;. Здесь сначала значение переменной $a приравнивалось переменной $b, а затем происходило увеличение значения переменной $a.

  • — (декремент/ уменьшение значения на единицу)

    Например, --$a. И также, как и в случае с инкрементом, существуют два вида записи: --$a и $a--

Операции присваивания

  • =

    Приравнивает переменной определенное значение: $a = 5
  • +=

    Сложение с последующим присвоением результата. Например:
    
    $a=12;
    $a += 5;
    echo $a; // равно 17
    
  • -=

    Вычитание с последующим присвоением результата. Например:
    $a=12; $a -= 5; echo $a; // равно 7
  • *=

    Умножение с последующим присвоением результата:
    
    $a=12;
    $a *= 5;
    echo $a; // равно 60
    
  • /=

    Деление с последующим присвоением результата:
    
    $a=12;
    $a /= 5;
    echo $a; // равно 2.4
    
  • .=

    Объединение строк с присвоением результата. Применяется к двум строкам. Если же переменные хранят не строки, а, к примеру, числа, то их значения преобразуются в строки и затем проводится операция:
    
    $a=12;
    $a .= 5;
    echo $a; // равно 125
    // идентично
    $b="12";
    $b .="5"; // равно 125
    
  • %=

    Получение остатка от деления с последующим присвоением результата:
    
    $a=12;
    $a %= 5;
    echo $a; // равно 2
    

Операции сравнения

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

  • ==

    Оператор равенства сравнивает два значения, и если они равны, возвращает true, иначе возвращает false: $a == 5
  • ===

    Оператор тождественности также сравнивает два значения, и если они равны, возвращает true, иначе возвращает false:
    $a === 5
  • !=

    Сравнивает два значения, и если они не равны, возвращает true, иначе возвращает false: $a != 5
  • !==

    Сравнивает два значения, и если они не равны, возвращает true, иначе возвращает false: $a !== 5
  • >

    Сравнивает два значения, и если первое больше второго, то возвращает true, иначе возвращает false: $a > 5
  • <

    Сравнивает два значения, и если первое меньше второго, то возвращает true, иначе возвращает false: $a < 5
  • >=

    Сравнивает два значения, и если первое больше или равно второму, то возвращает true, иначе возвращает false:
    $a >= 5
  • <=

    Сравнивает два значения, и если первое меньше или равно второму, то возвращает true, иначе возвращает false: $a <= 5
Оператор равенства и тождественности

Оба оператора сравнивают два выражения и возвращают true, если выражения равны. Но между ними есть различия. Если в операции равенства принимают два значения разных типов, то они приводятся к одному — тому, который интерпретатор найдет оптимальным. Например:


<?php
$a = "22a";
$b = 22;
if($a==$b)
	echo "равны";
else
	echo "не равны";
?>

Очевидно, что переменные хранят разные значения разных типов. Но при сравнении они будут приводится к одному типу — числовому. И переменная $a будет приведена к числу 22. И в итоге обе переменных окажутся равны.

Или, например, следующие переменные также будут равны:


$a = false;
$b = 0;

Чтобы избежать подобных ситуаций используется операция эквивалентности, которая учитывает не только значение, но и тип переменной:


$a = "22a";
$b = 22;
if($a===$b)
	echo "равны";
else
	echo "не равны";

Теперь переменные будут не равны.

Аналогично работают операторы неравенства != и !==.

Логические операции

Логические операции обычно применяются для объединения результатов двух операций сравнения. Например, нам надо выполнить определенное действие, если истинны будут несколько условий. Имеются следующие логические операции:

  • &&

    Возвращает true, если обе операции сравнения возвращают true, иначе возвращает false: $a == 5 && $b = 6
  • and

    Аналогично операции &&: $a == 5 and $b > 6
  • ||

    Возвращает true, если хотя бы одна операция сравнения возвращают true, иначе возвращает false: $a == 5 || $b = 6
  • or

    Аналогично операции ||: $a < 5 or $b > 6
  • !

    Возвращает true, если операция сравнения возвращает false:
    !($a >= 5)
  • xor

    Возвращает true, если только одно из значений равно true. Если оба равны true или ни одно из них не равно true, возвращает false. Например:
    
    $a=12;
    $b=6;
    if($a xor $b)
    	echo 'true';
    else
    	echo 'false';
    

    Здесь результат логической операции будет false, так как обе переменных имеют определенное значение. Изменим код:

    
    $a=12;
    $b=NULL;
    if($a xor $b)
    	echo 'true';
    else
    	echo 'false';
    

    Здесь уже результат будет true, так как значение одной переменной не установлено. Если переменная имеет значение NULL, то в логических операциях ее значение будет рассматриваться как

    false

Битовые операции

Битовые операции производятся над отдельными битами числа. Числа рассматриваются в двоичном представлении, например, 2 в двоичном представлении 010, число 7 — 111.

  • & (логическое умножение)

    Умножение производится поразрядно, и если у обоих операндов значения разрядов равно 1, то операция возвращает 1, иначе возвращается число 0. Например:
    
    $a1 = 4; //100
    $b1 = 5; //101
    echo $a1 & $b1; // равно 4
    

    Здесь число 4 в двоичной системе равно 100, а число 5 равно 101. Поразрядно умножим числа и получим (1*1, 0*0, 0 *1) = 100, то есть число 4 в десятичном формате.

  • | (логическое сложение)

    Похоже на логическое умножение, операция также производится по двоичным разрядам, но теперь возвращается единица, если хотя бы у одного числа в данном разряде имеется единица. Например:
    
    $a1 = 4; //100
    $b1 = 5; //101
    echo $a1 | $b1; // равно 5
    
  • ~ (логическое отрицание)

    инвертирует все разряды: если значение разряда равно 1, то оно становится равным нулю, и наоборот.
    
    $b = 5;
    echo ~$b;
    
  • <<

    x<<y — сдвигает число x влево на y разрядов. Например, 4<<1 сдвигает число 4 (которое в двоичном представлении 100) на один разряд влево, то есть в итоге получается 1000 или число 8 в десятичном представлении

  • >>

    x>>y — сдвигает число x вправо на y разрядов. Например, 16>>1 сдвигает число 16 (которое в двоичном представлении 10000) на один разряд вправо, то есть в итоге получается 1000 или число 8 в десятичном представлении

Объединение строк

Для объединения строк используется оператор «точка». Например, соединим несколько строк:


$a="Привет, ";
$b=" мир";
echo $a . $b . "!";

Если переменные представляют не строки, а другие типы, например, числа, то их значения преобразуются в строки и затем также происходит операция объединения строк.

metanit.com

Что такое PHP? Шпаргалка для начинающих программистов

PHP: Hypertext Preprocessor (Препроцессор Гипертекста) — это серверный язык программирования, созданный специально для web-разработки. PHP — один из самых популярных языков программирования, используемых при разработке сайтов и web-приложений. Его преимуществом перед другими языками является возможность внедрения PHP-кода непосредственно в HTML.

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

Для наглядности приведу простейший пример. На сайте 1000 страниц, появилась необходимость изменить какой-то элемент, который повторяется на всех страницах (например в шапке сайта). Если сайт состоит просто из HTML-страниц, то придется вносить изменения во все 1000 файлов, а если сайт работает на PHP, то изменить нужно будет всего один файл, так как работая с программным кодом, можно вынести повторяющие элементы в отдельный файл и подгружать ко всем остальным.

Хотя многие программисты скептически относятся к PHP, считая его «недоязыком», создавать программную часть сайта быстрее и легче всего именно на PHP. Такое отношение сформировалось о начальных версиях PHP, но с 1995 года прошло уже огромное количество времени, на протяжении которого язык совершенствовался, дополнялся и дорос до полноценного языка программирования с возможностью использовать ООП (объектно-ориентированный подход), функциональный подход и продолжает развиваться.

Для чего использовать PHP?

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

Содержимое PHP-файла:


<!DOCTYPE html>
<html>
    <head>
        <title>Содержимое PHP-файла</title>
    </head>
    <body>
        <p><?php echo "Привет, я - скрипт PHP!"; ?></p>
    </body>
</html>

Исходный код в браузере:


<!DOCTYPE html>
<html>
    <head>
        <title>Исходный код в браузере</title>
    </head>
    <body>
        <p>Привет, я - скрипт PHP!</p>
    </body>
</html>

Стоит отметить, что PHP-код обрабатывается на сервере и его нельзя посмотреть в браузере, в отличии, например, от клиентского JavaScript. То есть программный код скрыт от лишних глаз и увидеть его может только тот, кто имеет доступ к хостингу, на котором расположены исполняемые PHP-файлы.

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

zyubin.ru

PHP Основы

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

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

Без спору, PHP является более сложным языком, чем, например, JavaScript. Но прислушайтесь к моему мнению, ведь я достиг определённого уровня в 11-ти (!) языках программирования. Уверяю Вас: главное — это начать, а дальше всё пойдёт как по маслу. И очень важно — это правильно начать, начать с простых вещей и двигаться от простого к сложному. И в этом-то и поможет данная категория сайта. Прочитав предложенные здесь материалы и приложив хоть немного усилий, чтобы применить полученные знания на практике, Вы поймёте, что я был прав.

В силу вышесказанного, не надо бояться изучения PHP, и смело приступайте к знакомству с ним — Вы не пожалеете, гарантирую!

Полный курс по PHP и MySQL: http://srs.myrusakov.ru/php

Прочитав статьи по основам PHP, Вы узнаете:

1) Почему не работает PHP.

2) Как создавать домены и поддомены в пакете Denwer.

3) Код простейшей программы Hello World на PHP.

4) Как создавать переменные в PHP.

5) Об условном операторе в PHP.

6) Что такое ссылочные переменные в PHP.

7) Как создать константы в PHP.

8) Зачем нужен оператор эквивалентности в PHP.

9) О создании и переборе массивов в PHP.

10) Об отладочной функции в PHP.

11) Как подключить в PHP сторонний файл.

12) О разбиении и объединении строк в PHP.

13) Как создать функцию в PHP.

14) Как обработать форму в PHP.

15) Какие математических функции имеются в PHP.

16) Какие строковые функции имеются в PHP.

17) Как работать с датой и временем в PHP.

18) Как работать с массивами в PHP.

19) О MD5 хэширование в PHP.

20) Как работать с файлами в PHP.

21) О чтении INI-файлов в PHP.

22) Реализации редиректа на PHP.

23) Как работать с cookie в PHP.

24) Как работать с сессиями в PHP.

25) Как отправить e-mail через PHP.

26) Как создать класс в PHP.

27) О наследовании классов в PHP.

28) Об абстрактных классах в PHP.

29) О модификаторах доступа в PHP.

30) Об интерфейсах в PHP.

31) О методе toString() в PHP.

32) Как использовать DirectoryIndex в .htaccess.

33) Как установить модуль cURL на Denwer.

34) Какие возможности предоставляет модуль cURL.

35) Как работать в PHP с cURL.

36) Как узнать HTTP-заголовки сервера через cURL.

37) Как отправлять POST-запросы в cURL.

38) Как отправлять GET-запросы в cURL.

39) Какая разница между POST и GET.

40) Как проводить тестирование PHP-кода через cURL.

41) Как отправлять cookie через cURL.

42) Как отправлять referer через cURL.

43) Как узнать IP-адрес посетителя через PHP.

44) Как узнать страну по IP-адресу через PHP.

45) О глобальном массиве $_SERVER в PHP.

46) Как загрузить файл в PHP.

47) Как обеспечить безопасность при загрузке файлов в PHP.

48) Как загружать файлы больших размеров в PHP.

49) Как создавать изображения в PHP.

50) Как рисовать в PHP графические примитивы.

51) Как залить замкнутую область в PHP.

52) Как загрузить изображение из файла в PHP.

53) Как залить изображение текстурами в PHP.

54) Как узнать цвет пикселя изображения в PHP.

55) Как рисовать текст в PHP.

56) Как рисовать русский текст в PHP.

57) Что такое регулярные выражения и где они используются.

58) Какие функции для работы с регулярными выражениями используются в PHP.

59) Какие метасимволы используются при составлении регулярных выражений.

60) Какие квантификаторы повторений используются при составлении регулярных выражений.

61) Какие спецсимволы используются при составлении регулярных выражений.

62) Какие модификаторы используются при составлении регулярных выражений.

63) Примеры регулярных выражений.

64) Как продлить время жизни сессии в PHP.

65) Как узнать страну посетителя по его IP-адресу через базу данных.

66) Как просмотреть AVI-файл на сайте.

67) Как установить ffmpeg на Denwer.

68) Что такое API.

69) Как конвертировать AVI в FLV на сервере.

70) Как сделать регистрацию и авторизацию пользователей на сайте.

71) Какая разница между cookie и сессиями.

72) Как реализовать поиск на сайте через PHP.

73) Как создать движок для сайта.

74) Как создать Admin-панель для сайта.

75) Функции для работы с каталогами в PHP.

76) Как удалить каталог с файлами в PHP.

77) Что такое права доступа к файлам.

78) Какие функции имеются в PHP для работы с правами доступа к файлам.

79) Как создать свой API на сайте.

80) Как использовать файлы TPL.

81) Как задать кодировку в файле htaccess.

82) Как решить проблему с кодировкой при выборке из базы данных.

83) Как реализовать Кто онлайн.

84) Как сделать голосование на сайте.

85) Как сделать ЧПУ-ссылки на PHP.

86) Как спрятать содержимое директории на сайте.

87) Об основном инструменте поиска ошибок в коде.

88) Как работать с XML-документом в PHP.

89) Как создать социальную сеть.

90) Как блокировать доступ к сайту по IP-адресу.

91) Как закрыть сайт на реконструкцию.

92) О директиве register_globals.

93) Как убрать конфликт между Denwer и Skype.

94) О «жадных» или «ленивых» квантификаторах повторений в регулярных выражениях.

95) О «сверхжадных» или «ревнивых» квантификаторах повторений в регулярных выражениях.

96) Как создать ZIP-архив на PHP.

97) Как извлечь ZIP-архив на PHP.

98) Как узнать время работы скрипта на PHP.

99) Как динамически выводить данные в PHP-скрипте.

100) Об использовании cron.

101) Что лучше: готовый движок или сайт с нуля.

102) Как оптимизировать PHP-код.

103) Что такое сокет в PHP.

104) Как написать сокет-сервер на PHP.

105) Как написать сокет-клиент на PHP.

106) Как сделать мультиязычный сайт на PHP.

107) Как сделать навигацию по страницам на PHP.

108) Как сделать комментирование на сайте.

109) О практике использования tpl-файлов.

110) Как сделать тестирование на сайте.

111) Как сделать страницу пользователя.

112) Как сделать приём оплаты на сайте.

113) Как генерировать PDF на PHP.

114) Как генерировать PDF на PHP с использованием TCPDF.

115) Как генерировать XLS на PHP.

116) Как запускать PHP-код.

117) Как обезопасить сайт.

118) Как отключить кэширование на PHP.

119) Что такое статические методы и свойства в ООП.

120) Что такое фреймворк.

121) Как сделать типы пользователей на PHP.

122) Как сделать чат на PHP.

123) Что такое DOM.

124) Как сохранять и загружать XML-документы через DOM.

125) Как получить список дочерних узлов через DOM.

126) Как работать с атрибутами узлов в XML-документе.

127) Как создать XML-документ в PHP.

128) Как парсить XML-документ на PHP.

129) Как сделать подписку на сайте.

130) Почему не работает Denwer.

131) Почему появляется «абракадабра» на сайте.

132) Как построить график на PHP.

133) Как создать капчу с арифметическими операциями.

134) Как сделать свой сервер для сайта.

135) Как склонять слова на PHP.

136) О циклах в PHP.

137) Какая проблема связки PHP и HTML.

138) Что такое MVC.

139) О компонентом подходе в PHP.

140) Как создать генератор паролей на PHP.

141) Как правильно осваивать PHP.

142) Как работать с FTP через PHP.

143) Как найти все ссылки на странице через PHP.

144) О функциях форматного вывода в PHP.

145) О функции sscanf() в PHP.

146) Как вывести различные уровни ошибок в PHP.

147) О функциях для работы с DNS.

148) Как реализовать кэширование на PHP.

149) Как вывести все картинки из папки на PHP.

150) Как проверить дату на корректность в PHP.

151) Как создавать динамические функции на PHP.

152) Как правильно шифровать пароли пользователей на сайте?

153) Как генерировать уникальный ID на PHP.

154) Как запустить PHP-функцию нажатием по ссылке.

155) Как определить браузер пользователя через PHP.

156) Как вывести случайный элемент из массива в PHP.

157) Что такое рекурсия и как её использовать в PHP.

158) Как правильно изучать PHP и MySQL.

159) Как удалить GIF-анимацию в PHP.

160) Как получить Видеокурс по PHP и MySQL.

161) Как получить бесплатный Видеокурс по основам PHP.

162) Как правильно экранировать регулярное выражение.

163) Как настроить HTTPS-соединение.

164) Как настроить часовой пояс через htaccess.

165) Как удалить/добавить слэш в конце URL.

166) Как исправить ошибку «Cannot modify header information — headers already sent«.

167) Как создать объект по имени класса в PHP.

168) Об ошибке «Function fetch_assoc() on a non-object«.

169) Как обрезать изображение в PHP.

170) Как создать файл .htaccess.

171) Как узнать, сколько изменилось строк после UPDATE или DELETE.

172) Как масштабировать изображение в PHP.

173) Как сделать статистику посещений на PHP.

174) О коде шаблонизатора в PHP.

175) О классе для работы с базой данных.

176) Как строить графики на PHP.

177) Как вывести время с учётом часового пояса в PHP.

178) Как определить часовой пояс пользователя.

179) Как отсортировать двумерный массив на PHP.

180) Как загрузить изображения с других сайтов на PHP.

181) Как сделать систему рефералов на PHP.

182) Что такое рефакторинг.

183) Как проводить рефакторинг.

184) Как сохранять данные в форме.

185) Как сделать улушенную версию подписки на обновления.

186) Как убрать index.php из URL.

187) Как обработать ошибки на PHP.

188) Как скрыть URL скачиваемого файла на PHP.

189) Когда использовать POST, а когда GET.

190) Как сделать поиск по файлам на PHP.

191) О глобальных переменных в PHP.

192) Как сделать мониторинг сервера.

193) Об операторе подавления ошибок в PHP.

194) Что такое gzip.

195) Стоит ли использовать gzip.

196) Как сделать смайлы в комментариях.

197) Как определить язык пользователя на PHP.

198) Как заблокировать пользователя на сайте.

199) О функции __autoload() в PHP.

200) Как сделать одноразовую авторизацию по ссылке.

201) Как сделать капчу с обновлением.

202) Как определить реальный IP-адрес посетителя.

203) Как «подружить» русский язык и регулярные выражения.

204) Как отменить повторную отправку формы.

205) Как удалить GET-параметр из URL.

206) Как сделать фильтр поиска на PHP.

207) Как сделать Pagination на PHP.

208) Как работать с API ВКонтакте.

209) Как отправлять SMS на сайте.

210) Как работать с HTML-массивами в PHP.

211) О механизме исключений в PHP.

212) Как создавать собственные исключения в PHP.

213) Как удалить координаты в GET у кнопки image.

214) Как защититься от постоянных нажатий F5.

215) Как сделать парсер контента на PHP.

216) Как перевести русский текст в транслит на PHP.

217) Как работать с whois через PHP.

218) Как сделать многоуровневое меню на PHP и MySQL.

219) Как склонять имена по падежам через PHP.

220) Как запретить доступ к файлам через mod_rewrite.

221) Про использование RewriteCond в mod_rewrite.

222) Как сделать ЧПУ-ссылки на mod_rewrite.

223) Как сделать счётчик обращений к файлам с помощью mod_rewrite.

224) Как сделать графический счётчик на PHP.

225) Как вывести MP3-файлы на PHP.

226) Как сделать сокращение URL на PHP.

227) Как сделать систему лайков на PHP.

228) Как защитить e-mail на сайте от спамеров.

229) Что такое пространства имён.

230) Как захэшировать пароль с помощью Hash API.

231) Что нового появилось в PHP 5.5.

232) Что такое PDO.

233) Основные методы для работы с данными в PDO.

234) Подготовленные запросы, отлавливание ошибок и транзакции в PDO.

235) Как написать сокращатель URL? Часть 1.

236) Зачем нужен шаблон проектирования «Одиночка».

237) Зачем нужен шаблон проектирования «Стратегия».

238) Зачем нужен шаблон проектирования «Фабрика».

239) Как написать сокращатель URL? Часть 2.

240) Как написать сокращатель URL? Часть 3.

241) Что такое анонимные, или лямбда-функции в PHP.

242) Зачем нужен пакетный менеджер composer.

243) Что такое фильтры в PHP.

244) Что такое Reflection API? ReflectionClass.

245) Что такое Reflection API? Reflection Method.

246) Что такое Reflection API? Reflection Property.

247) Что такое Reflection API? Reflection Parameter.

248) Что такое Reflection API? Reflection Object.

249) Зачем нужен шаблон проектирования «Адаптер».

250) Зачем нужен шаблон проектирования «Фасад».

251) Как создать движок на MVC? Введение.

252) Как создать движок на MVC? Пишем роутер.

253) Как создать движок на MVC? Дорабатываем роутер.

254) Как подключать классы с использованием spl_autoload.

255) Сериализация объектов в PHP.

256) Как создать движок на MVC? Выводим страницы. Часть 1.

257) Как работать с GitHub (1/3).

258) Как создать движок на MVC? Выводим страницы. Часть 2.

259) Как работать с GitHub (2/3).

260) Как работает функция array_pad в PHP.

261) ООП против процедурного подхода в PHP.

262) Как работать с GitHub (3/3).

263) Как создать движок на MVC? Выводим страницы. Часть 3.

264) Как сделать авторизацию пользователей через Facebook на PHP.

265) Как создать движок на MVC? Выводим страницы. Часть 4.

266) Как создать движок на MVC? Начинаем работу с базой данных.

267) Как научиться печатать 10-ю пальцами, не глядя на клавиатуру.

268) Как создать движок на MVC? Создаем авторизацию.

269) Как создать движок на MVC? Создаем чат.

270) Как создать движок на MVC? Продолжаем работу над чатом.

271) Как создать движок на MVC? Заканчиваем работу с чатом.

272) Как создать движок на MVC? Начинаем делать систему распределения прав пользователей.

273) Как создать движок на MVC? Создаем возможность добавления пользователя через админ панель.

274) Как создать движок на MVC? Делаем возможность редактирования и удаления пользователей из базы данных.

275) Как создать движок на MVC? Улучшаем систему шифровки пароля пользователей.

276) Как обновить PHP на Denwer.

277) PHP: безопасность. Хранение данных в cookies.

278) PHP: безопасность. Отображение ошибок.

279) PHP: безопасность. Подключение файлов.

280) PHP: безопасность. Что такое XSS.

281) Как создать социальную сеть на PHP: вступление.

282) Как создать социальную сеть на PHP: подготовка проекта.

283) Как создать социальную сеть на PHP: вывод домашней страницы.

284) Новинки в PHP7. Часть 1.

285) Новинки в PHP7. Часть 2.

286) Новинки в PHP7. Часть 3.

287) Новинки в PHP7. Часть 4.

288) Новинки в PHP7. Часть 5.

289) Новинки в PHP7. Часть 6.

290) Новинки в PHP7. Часть 7.

291) Некоторые советы по написанию условий в PHP.

292) Как использовать интерфейс countable в PHP.

293) Полезные советы по использованию Git.

294) Что нового в PHP7.1: обнуляемые типы.

295) Что нового в PHP7.1: улучшения для деконструкции массивов.

296) Что нового в PHP7.1: ключевое слово void.

297) Что нового в PHP7.1: видимость констант.

298) Что нового в PHP7.1: работа с группой исключений.

299) Что нового в PHP7.1: генерация случайных чисел.

300) Что нового в PHP7.1: новые сообщения об ошибках.

301) Что нового в PHP7.1: улучшения обработки $this.

302) Для чего используется PHP фреймворк Slim Framework.

303) Что такое стандарты PSR.

304) Как провести модульное тестирование в PHP средствами PHPUnit.

305) Как создавать форму обратной связи на PHP с отправкой на e-mail.

306) Как сделать верстку форму обратной связи используя Bootstrap.

307) Как использовать внедрение зависимостей в PHP.

308) Зачем использовать сервер Memcached в PHP.

309) Как подключить PHP файлы к MySQL базе данных.

310) Что такое потоки в PHP.

311) Как получить метаданные потока в PHP.

312) Чем интересны итераторы в PHP.

313) Как использовать интерфейс ArrayAccess в PHP.

314) Как логировать сообщения приложения в PHP с помощью Zend Log.

315) О источниках сохранения логов в Zend Log.

316) Что такое магические методы в PHP.

317) Что такое ORM в PHP.

318) Как читать RSS-ленту в PHP.

319) Что такое генераторы в PHP.

320) Как использовать трейты в PHP.

321) Как установить UTM метки на сайте через PHP.

322) Как установить UTM метки на сайте через PHP. Часть 2.

323) Как сделать мультилендинг.

324) Что такое динамический веб-сайт?.

325) Примеры sweatch-case в PHP.

Все материалы по основам PHP

myrusakov.ru

Что такое PHP? Пишем свою первую программу на PHP

8.5K

PHP – это серверный язык программирования, который исполняется на стороне сервера, в то время как JavaScript исполняется в браузере на стороне пользователя.

И PHP, и Javascript можно встраивать в HTML-страницы.

Прочитав эту статью о PHP программировании, вы узнаете:

  • Что такое скриптовый язык?
  • Сценарный язык vs программный язык.
  • Как расшифровывается PHP?
  • Что такое PHP?
  • Синтаксис PHP.
  • Зачем нужен PHP?
  • Для чего используется PHP и какова его доля на рынке?
  • PHP vs ASP.NET vs JSP vs CFML.
  • Файловые расширения PHP.
  • Простая программа PHP.
Программный языкСценарный язык
Предлагает свойства, необходимые для разработки полноценных приложений.В основном используется для выполнения рутинных задач.
Перед исполнением код нужно компилировать.Код исполняется без компиляции.
Необязательно встраивать в другие языки.Обычно встраивается в другие программные среды.

PHP расшифровывается как Personal Home Page (персональная домашняя страница), но сейчас всё чаше используется Hypertext Preprocessor.

PHP-код можно встраивать в HTML или использовать в CMS и веб-фреймворках.

Основное предназначение языка программирования PHP заключается в разработке:

  • Статичных сайтов;
  • Динамических сайтов;
  • Веб-приложений.

PHP-скрипты могут быть выполнятся только на тех серверах, где установлен интерпретатор данного языка.

Клиентским компьютерам, осуществляющим доступ к PHP-скриптам, понадобится только браузер. PHP-файл содержит теги, и имеет расширение .php.


PHP-файл также может содержать HTML и клиентские скрипты JavaScript.
  • Знание HTML будет преимуществом при изучении PHP. Можно учить PHP и без знания HTML, но желательно знать хотя бы основы;
  • СУБД для приложений, работающих с применением БД;
  • Для реализации более сложных задач потребуется связка JavaScript и XML.

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

  • PHP бесплатен и предлагает открытый исходный код;
  • Изучить его проще, нежели JSP, ASP и т. д.;
  • Большое сообщество разработчиков;
  • Большинство хостингов поддерживают PHP, чего не скажешь об ASP, для которого необходима поддержка IIS;
  • PHP постоянно обновляется;
  • PHP предлагает встроенную поддержку MySQL. Также PHP можно использовать с:
  • Postgres;
  • Oracle;
  • MS SQL Server;
  • ODBC;
  • PHP – кроссплатформенный язык. Это означает, что вы можете реализовать свое приложение на нескольких ОС, включая Windows, Linux, Mac OS и других.

На основе PHP работает более 20 миллионов сайтов и веб-приложений:

ASP – Active Server Pages.
JSP – Java Server Pages.
CFML – Cold Fusion Markup Language.

В таблице ниже приведено сравнение различных серверных языков с языком программирования PHP.

СвойствоPHPASPJSPCFML
ОбучаемостьБыстроДольше чем PHPДольше чем PHPДольше чем PHP
ХостингПоддерживается практически всеми хостерами.Необходим выделенный сервер.Относительно хорошая.Необходим выделенный сервер.
Open SourceДаНетДаДоступны коммерческая и open source версии
Поддержка веб-сервисовВстроеннаяИспользуется фреймворк .NETИспользуются дополнительные библиотекиВстроенная
Интеграция с HTMLПростаяДостаточно сложнаяДостаточно сложнаяПростая
Поддержка MySQLНативнаяПотребуются сторонние драйверыПотребуются сторонние драйверыВ текущей версии есть нативная поддержка. В прежних версиях используется ODBC
Дополнение другими языкамиДаНетПри помощи Java-классов и библиотекДа

Чтобы сервер мог распознавать PHP-файлы, сохранять документы нужно с расширением .php. В прошлом к PHP-расширениям также относились:

  • .phtml
  • .php3
  • .php4
  • .php5
  • .phps

PHP был разработан для работы с HTML, следовательно, его можно встраивать в HTML-код:


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

Чтобы сервер мог отличить PHP от HTML, код всегда нужно обрамлять соответствующими тегами. PHP чувствителен к регистру. Это значит, что «VAR» — это не то же самое, что «var».

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

Мы расцениваем строки PHP-кода как выражения. Они оканчиваются точкой с запятой (;). Если у вас будет только одно выражение, то точку с запятой можно опустить. Если выражений больше одного, то каждая строка должна завершаться точкой с запятой.

Приведённая ниже программа является простым PHP-приложением, которое выводит “Hello World!” в браузере.

<?php
echo "Hello world";
?>
  • Язык программирования PHP расшифровывается как Hypertext pre-processor;
  • PHP выполняется на стороне сервера. Это исключает необходимость установки дополнительного программного обеспечения на устройства пользователей;
  • PHP-файлы необходимо сохранять с расширением .php;
  • PHP распространяется с открытым исходным кодом и поддерживается на многих платформах.

Данная публикация представляет собой перевод статьи «What is PHP? Write your first PHP Program» , подготовленной дружной командой проекта Интернет-технологии.ру

www.internet-technologies.ru

PHP: Что такое PHP? — Manual

Что такое PHP?

PHP (рекурсивный акроним словосочетания PHP: Hypertext Preprocessor) — это распространенный язык программирования общего назначения с открытым исходным кодом. PHP специально сконструирован для веб-разработок и его код может внедряться непосредственно в HTML.

Простой ответ, но что он может означать? Вот пример кода:

Пример #1 Пример программирования на PHP

<!DOCTYPE html>
<html>
    <head>
        <title>Пример</title>
    </head>
    <body>

        <?php
        echo "Привет, я - скрипт PHP!";
        ?>

    </body>
</html>

Вместо рутинного вывода HTML-кода командами языка (как это происходит, например, в Perl или C), скрипт PHP содержит HTML с встроенным кодом (в нашем случае, это вывод текста «Привет, я — скрипт PHP!»). Код PHP отделяется специальными начальным и конечным тегами <?php и ?>, которые позволяют «переключаться» в «PHP-режим» и выходить из него.

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

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

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

www.php.net

Урок 5. Условный оператор if, логические операции и сравнение в PHP

1. Условный оператор if в PHP
2. Операторы сравнения
3. Логические операторы в PHP
4. Тернарный оператор

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


Главное в действие данное оператора — это условие. if в переводе с английского значит если. Условие принимается в качестве аргумента (то что в скобках). В качестве условия может выступать логическое выражение или логическая переменная. Если проще, то смысл выражения будет такой:
if (условие){
условие выполнено, делаем так
}
else
{
условие не выполнено, делаем иначе
}

Надеюсь логика условной операции понятна. Теперь давайте рассмотрим пример.
<?php 
$a = 5;
$b = 25;

// Теперь внимание! Условие: Если $b больше $a
// Знаки > и < , как и в математике, обозначают больше и меньше
if($b > $a)
{
    // если условие выполнено, то выполняем это действие
    echo "$b больше $a";
}
else 
{
    // если не выполнено, то это
       echo "$a больше или равно $b";
}
?> 


Демонстрация Скачать исходники
В итоге скрипт выведет 25 больше 5. Пример довольно прост. Надеюсь всё понятно. Теперь предлагаю рассмотреть ситуацию сложнее, где нужно соблюсти несколько условий. Каждое новое условие будет содержать после основного условия if() — вспомогательное, которое записывается как else if(). В конце как обычно будет else.

Задача: В школе проводят тестирование. Скрипту нужно высчитать балл, зная условия получения каждой оценки и сам балл школьника. Давайте посмотрим как это записать, и не забудьте прочитать комментарий.

<?php 
$test = 82; // допустим школьник написал тест на 82 балла

// первое условие напишем для пятёрки
if($test > 90)
{
    // если условие соблюдено, то выполняем это действие.
    echo "Оценка 5";
}
// Знак && обозначает "и, объединение", что условие соблюдено если и то, и то верно
// то есть балл меньше 91 и больше 80, тогда 4. Иначе условия считываются дальше
else if ($test < 91 && $test > 80) 
{
    echo "Оценка 4";
}
else if ($test < 81 && $test > 70) 
{
    echo "Оценка 3";
}
else
{
    echo "Надо бы ещё раз написать тест...";
}
?>


Демонстрация Скачать исходники
Наш школьник, который успевает и отдохнуть, и написать нормально тест получает оценку 4! А принцип работы надеюсь понятен.

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

$age = 19; // переменная с возрастом

if ($age > 17){
  echo "Всё! Мне можно делать всё что угодно! Мне уже $age!";
}


Вполне себе милый пример короткой записи условной операции. else писать не обязательно.

Дальше встаёт другой вопрос: а есть же, наверное, какие-либо другие операторы сравнения?

Операторы сравнения в PHP


Принцип работы условной операции понятен. Но, как Вы понимаете, способов сравнить намного больше. Давайте посмотрим ниже на таблицу с операторами сравнения.
Пример        Название            Результат
$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

Теперь рассмотрим операторы на примерах:
$a = 5;

// вопреки привычке = значит присваивание значение переменной, а == как равно
if ($a == 5){
  echo "$a равно 5"; // выведет "5 равно 5"
} else {
  echo "$a не равно 5";
}

if ($a != 6){
  echo "$a не равно 6"; // выведет "5 не равно 6". Нужно в случае отрицания
} else {
  echo "$a каким-то образом равно 6";
}

// с больше и меньше думаю всё понятно. Поэтому пример сложнее
if ($a <= 6){
  echo "$a меньше или равно 6"; // выведет "5 меньше или равно 6"
} else {
  echo "$a больше 6";
}

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


Бывают случаи, когда нужно сравнить не одну переменную, а сразу две и более в одном условии. Для этого существуют логические операторы.
Пример       Название          Результат
$a and $b    Логическое 'и'     TRUE если и $a, и $b TRUE.
$a or $b     Логическое 'или'   TRUE если или $a, или $b TRUE.
$a xor $b    Исключающее 'или'  TRUE если $a, или $b TRUE, но не оба.
! $a         Отрицание          TRUE если $a не TRUE.
$a && $b     Логическое 'и'     TRUE если и $a, и $b TRUE.
$a || $b     Логическое 'или'   TRUE если или $a, или $b TRUE.

Уже обратили внимание, что для операций и и или есть дополнительные операторы? Так сделано для того, чтобы расставить приоритеты в сложных операциях сравнения. В таблице логические операторы приведены в порядке приоритета: от меньшего к большему, то есть, например, || имеет больший приоритет, чем or.

Переходим к примерам

$a = 5;
$b = 6;
$c = 7;

// условие: Если 5 не равно 6 (ВЕРНО)  И  6 не равно 7 (ВЕРНО)
if ($a < 6 && $b != $c){
  echo "Действительно так!"; // выведет "Действительно так!" т.к. ОБА условия ВЕРНЫ
} else {
  echo "Одно из условий не верно";
}

// условие: Если 6 не равно 6 (НЕВЕРНО)  ИЛИ  6 не равно 7 (ВЕРНО)
if ($b != 6 || $b != $c){
  echo "Всё так!"; // выведет "Всё так!", т.к. хотя бы ОДНО из условий ВЕРНО
} else {
  echo "Оба условия не верны";
}

Тернарный оператор


К вопросу тернарного кода я предлагаю Вам вернуться позже. Вовсе не упомянуть его я не мог, так как это важная конструкция, которая существенно сокращает размер кода. Предлагаю сразу рассмотреть код.

Суть кода: (условие) ? значение a если true : значение a если false

Таким образом, мы сокращаем запись оператора if. Однако, данная операция действительна только с присваиванием значений переменной. Теперь давайте рассмотрим готовый пример.

<?php
// Пример использования тернарного оператора
$settings = (empty($_POST['settings'])) ? 'По умолчанию' : $_POST['settings'];

// Приведенный выше код аналогичен следующему блоку с использованием if/else
if (empty($_POST['settings'])) {
    $settings = 'По умолчанию'; // Если ничего не передано, то оставляем "По умолчанию"
} else {
    $settings = $_POST['settings']; // Если передано, то $settings присваивается переданное значение.
}
?>


Прочитайте комментарии к коду и всё должно быть понятно.

Спасибо за внимание!

tradebenefit.ru

PHP: PHP и HTML — Manual

Здесь несколько этапов, на которых кодировка важна. Предположим, что у вас есть $data типа string, содержащая строку, которую вы хотите передать без кодирования. Вот эти этапы:

  • Интерпретация HTML. Для того, чтобы задать произвольную строку, вы должны заключить её в двойные кавычки и использовать htmlspecialchars() для кодирования.

  • URL: URL состоит из нескольких частей. Если вы хотите чтобы ваши данные были восприняты как один элемент, вы должны закодировать их с помощью urlencode().

Пример #1 Скрытый элемент HTML-формы

<?php
    echo '<input type="hidden" value="' . htmlspecialchars($data) . '" />'."\n";
?>

Замечание: Использовать urlencode() для $data неправильно, так как кодировать данные в urlencode() это обязанность браузера. Все популярные браузеры делают это правильно. Отметьте, что это происходит вне зависимости от метода (например, GET или POST). Вы заметите это только в случае GET-запроса, так как POST-запросы обычно скрыты.

Пример #2 Данные, редактируемые пользователем

<?php
    echo "<textarea name='mydata'>\n";
    echo htmlspecialchars($data)."\n";
    echo "</textarea>";
?>

Замечание: Данные показываются браузером как предполагается, потому что браузер будет интерпретировать экранированные HTML-символы. При отправке через GET или POST данные будут закодированы (urlencoded) браузером для передачи и декодированы (urldecoded) PHP. Поэтому вам не надо выполнять какое-либо кодирование/декодирование url самостоятельно, всё обрабатываются автоматически.

Пример #3 В URL

<?php
    echo '<a href="' . htmlspecialchars("/nextpage.php?stage=23&data=" .
        urlencode($data)) . '">'."\n";
?>

Замечание: На самом деле вы подделываете HTML GET-запросом, поэтому необходимо вручную закодировать (urlencode()) данные.

Замечание: Вам надо применить htmlspecialchars() ко всему URL, потому что URL появляется как значение HTML-атрибута. В этом случае, браузер сначала раскодирует всё значение (обратная операция htmlspecialchars()) и затем передаст URL. PHP поймёт URL правильно, так как вы закодировали данные с urlencode(). Вы заметите, что & в URL заменяется на &amp;. Хотя большинство браузеров это исправляют, если вы забудете об этом, но все же это не всегда возможно. Поэтому, даже если ваш URL не динамический, вам надо закодировать его с помощью htmlspecialchars().

www.php.net