- •Интернет-программирование
- •ИП. PHP 7. Борьба за скорость
- •ИП. История PHP
- •ИП. История PHP
- •ИП. Устройство PHP
- •ИП. Устройство PHP
- •ИП. Распространенность PHP
- •ИП. Распространенность PHP
- •ИП. История PHP
- •ИП. PHP 7. Борьба за скорость МИЭТ, 2017
- •ИП. PHP 7. Борьба за скорость
- •ИП. Распространенность PHP
- •ИП. Язык PHP
- •ИП. Язык PHP. Простые типы данных
- •ИП. Язык PHP. Жесткие и символические ссылки
- •ИП. Язык PHP. Сложные типы данных
- •ИП. Язык PHP. Перебор элементов массива
- •ИП. Язык PHP. Сравнение
- •ИП. Язык PHP. Функции
- •ИП. Язык PHP. Разделение длинного кода на файлы
- •ИП. Язык PHP. ООП
- •ИП. Язык PHP. Права доступа к членам класса
- •ИП. Язык PHP. Конструкторы
- •ИП. Язык PHP. Деструкторы. Сборка мусора.
- •ИП. Язык PHP. Перегрузка методов
- •ИП. Язык PHP. Перегрузка методов
- •ИП. Язык PHP. Перегрузка свойств
- •ИП. Язык PHP. Финализация класса
- •ИП. Язык PHP. Клонирование объектов
- •ИП. Язык PHP. Клонирование объектов
- •ИП. Язык PHP. Абстрактные классы и методы
- •ИП. Язык PHP. Интерфейсы
- •ИП. Язык PHP. Трейты
- •ИП. Язык PHP. Сравнение объектов
- •ИП. Язык PHP. Проверка типов в методах класса
- •ИП. Язык PHP. Полезные функции при работе с классами
- •ИП. Язык PHP. Обработка ошибок
- •ИП. Язык PHP. Сессии
- •ИП. Язык PHP. Источники информации
ИП. PHP 7. Борьба за скорость |
МИЭТ, 2017 |
Рост производительности PHP в 50 раз за 13 лет (2004-2015).
Теперь, по видимому только JIT
5.0 — 4.43 — 1
5.3 — 0.86 — 5.2
5.6 — 0.36 — 12.3
7.0— 0.23 — 19.2
7.1— 0.09 — 49.2
7.2— 0.01 — 443*
* - с использованием JIT
ИП. Распространенность PHP |
МИЭТ, 2017 |
Гипотеза — причина относительного падения распространенности PHP рост мобильных приложений
ИП. Язык PHP |
МИЭТ, 2017 |
PHP является языком с динамической типизацией.
Это означает, что типы данных переменных: целый, вещественный, строковый и т. д. не указываются в явном виде при объявлении переменных как в C или Java, а определяются на этапе исполнения (интерпретации) программы.
В php исполняемый код отделяется от статического контента с помощью <? ?>
Пример:
<div id='Test'><h1>МИЭТ</h1> <? echo 'Лучший'; ?>
<hr>
Комментарии в PHP — стандартные: // и /* */
Пример:
<div id='Test'><h1>МИЭТ</h1> <?
// Однострочный комментарий
echo 'Лучший'; // Однострочный комментарий /*
Многострочный
комментарий
*/
?>
<hr>
ИП. Язык PHP. Простые типы данных
Объявление переменных
$a = 5; $b = $a;
$c = 'МИЭТ';
Константы
define(VUZ, 'МИЭТ'); echo 'Лучший ВУЗ - '.VUZ; VUZ = 'Оксфорд';
Определение типа переменных
$a = 5; // оператор echo выведет результат операции
echo is_numeric($a); //будет показано - 1 т.е. true $b = 'String';
echo is_numeric($b); //будет показано - "пусто" т.е. false
echo is_string($b); //будет показано - 1 т.е. true
Арифметические операторы и сложение (конкатенация) строк
$a = 5; |
|
|
$b = 50; |
|
|
$c = 'МИЭТ'; |
// |
550 |
echo $a.$b."<br>"; |
||
echo $a+$b."<br>"; |
// |
55 |
echo $a.$c."<br>"; |
// 5МИЭТ |
|
echo $a+$c."<br>"; |
// |
5 |
МИЭТ, 2017
//Лучший ВУЗ - МИЭТ
//будет ошибка
ИП. Язык PHP. Жесткие и символические ссылки |
МИЭТ, 2017 |
/*
Жесткая ссылка задается присваиванием вида =& $b ссылается на $a и изменение $b - изменяет $a
*/
$a = 5; $b = &$a;
$b = 'МИЭТ';
echo "a=$a b=$b"; // a=МИЭТ b=МИЭТ
/*
Символическая ссылка задается добавлением $ перед переменной в этом случае значение переменной интерпретируется как имя перем $b ссылается на $a и изменение $b - изменяет $a
*/
$a = 5;
$c = 'a'; |
// a |
echo $c; |
|
echo $$c; |
// 5 — т.е. получено значение переменной a |
$$c = 'МИЭТ'; // изменит значение переменной a |
|
echo $c; |
// a |
echo $$c; |
// МИЭТ |
ИП. Язык PHP. Сложные типы данных |
МИЭТ, 2017 |
Массивы с числовыми индексами
$a = array(5, 'Привет', array('МИЭТ', 'ИПОВС'));
$a[3] = 'Проверка'; // Добавление / изменение по индексу array_push($a, array("Еще", "Элемент")); // Добавление в конец echo $a[0]; // 5
echo $a[1]; // Привет
echo $a[2][0].' '.$a[2][1]; // МИЭТ ИПОВС echo $a[4][0].' '.$a[4][1]; // Еще Элемент
Массивы с ключами (ассоциативные)
$a = array(
"Первый" => "МИЭТ",
"Втрой" => array("Еще", "Элемент"), "Еще один" => array(
"PostalCode" => 124498, "Address" => "Зеленоград"
)
);
$a["Новый"] = 'Проверка';
array_push($a, array("Еще", "Элемент")); // Добавит элемент с ключом '0' echo $a["Еще один"]["PostalCode"]; // 124498
echo $a["Новый"]; // Проверка
ИП. Язык PHP. Перебор элементов массива |
МИЭТ, 2017 |
$a = array ("Первый", "Второй", "Третий");
for($j=0; $j<count($a); $j++) { echo $a[$j].", ";
}
// Выведет Первый, Второй, Третий
$a = array(
"Первый" => "МИЭТ",
"Втрой" => array("Еще", "Элемент"), "Еще один" => array(
"PostalCode" => 124498, "Address" => "Зеленоград"
)
);
foreach ($a as $key => $value) { echo $key." ".$value."<br>";
}
/* Первый МИЭТ
Втрой Array Еще один Array */
ИП. Язык PHP. Сравнение |
МИЭТ, 2017 |
Сравнение простых типов
$a = "МИЭТ"; $b = 0;
if( $a == $b ) echo "Равны!"
1. Логические операции сравнения переменных в PHP аналогичны таким- же в других языках: !=, ==, <, >, <=, >=.
//«Равны!» т. к. приведение значения переменной $a к числу даст 0
2.Следует учитывать
Сравнение массивов |
особенность |
|
динамического |
||
|
||
|
приведения типов в PHP |
|
|
в о время операций |
|
|
сравнения, которая |
|
|
заключается в том, что |
|
|
если один из операндов |
|
|
число, то другой также |
|
|
приводится к числу. |
ИП. Язык PHP. Функции |
МИЭТ, 2017 |
Функции в PHP устроены — просто. Объявление функции: function Имя(Аргументы) { тело } Для возврата значения из функции используется оператор return Значение;.
Пример работы с функцией
<? |
|
|
$a = 'Test'; |
|
|
$b = 'МИЭТ'; |
|
|
echo Test($a, &$b); |
// Success |
|
echo $a; |
// Test |
|
echo $b; |
// МИЭТ лучший! |
|
function Test($c, $d, $e='') { // аргумент со значением по умолчанию можно не передавать
$c = 'Best';
$d .= ' лучший!'; // операция .= присоединят правый операнд к левому как строку $e = 'Success';
return $e;
}
?>
ИП. Язык PHP. Разделение длинного кода на файлы |
МИЭТ, 2017 |
Длинный код удобно разделять на файлы. Для объединения кода файлов в PHP определены операторы include и require. Require требует обязательного наличия включаемого файла. При его отсутствии программа завершится с сообщением об ошибке - «не найден требуемый файл». Во избежании многократных включений одних и тех-же файлов в сложных программах рекомендуется использовать include_once и require_once. В этом случае, сколько бы включений не было — файл подгрузится в код только один раз.
Пример включения файлов с кодом
<?
// Файл functions.php в папке library относительно корня сайта
function Alert() { echo 'MIET';
}
?>
<?
// Файл index.php в корне сайта
require 'library/functions.php'; Alert(); // MIET
?>
