SlideShare a Scribd company logo
1 of 35
PHP basic
Web
Карнаухов Даниил
Компилятор. Интерпретатор.
Компилятор - трансляция программы, составленной на исходном языке высокого
уровня, в эквивалентную программу на низкоуровневом языке, близком
машинному коду (абсолютный код, объектный модуль, иногда на язык ассемблера).
Интерпретатор - пооператорный (покомандный, построчный) анализ, обработка и
тут же выполнение исходной программы или запроса (в отличие от компиляции,
при которой программа транслируется без её выполнения).
PHP теги. Встраивание кода в html.
<html>
<head>
<title>PHP теги. Встраивание кода в html.</title>
</head>
<body>
<p>
<?php echo 'Hello world'?>
</p>
</body>
</html>
<?= 'short tag' ?>
<? echo 'Hello world' ?>
Комментарии.
// Это однострочный комментарий, он комметирует все, что находится за ним и до конца строки
/*
Это многострочный комментарий
Все, что находится между символами - не будет исполняться или отображаться.
*/
# Это комментарий в стиле оболочки Unix
Переменные.
Переменные в PHP представлены знаком доллара с последующим именем переменной.
Имя переменной чувствительно к регистру.
$x = 5;
$salary = 12500.00;
$BIG_NUMBER = 100000;
$big_number = 500000;
$4site = 123;
$русский = true;
Типы данных.
Boolean - логическое значение, true или false.
Integer - целочисленное значение. Граничные значения есть в PHP константах
PHP_INT_MAX и PHP_INT_MIN.
Float - он же double, число с плавающей точкой.
String - строки.
Array - массивы.
Object - объекты.
Resource - ресурсы.
NULL - null.
Функции var_dump() и print_r()
$number = 1;
var_dump($number);
$string = 'Hello world';
print_r($string);
Арифметические операции
Ссылки.
$a = 3;
$b = &$a; // $b - это ссылка на a
echo $a; // выводит 3
echo $b; // выводит 3
$a = 4; // меняем значение в переменной $a
echo $a; // выводит 4
echo $b; // выводит 4
Операторы сравнения
Операторы инкремента и декремента
Логические операторы
Строки
Объявление через двойные или одинарные ковычки.
$string1 = 'Hello world';
$string2 = "Hello world";
echo $string1;
echo $string2;
echo 'Это выведет название переменной $string1';
echo "Это выведет содержание переменной $string2";
Синтаксис HEREDOC и NOWDOC
$string1 = <<<HEREDOC
Hello world!
Hello world!
HEREDOC;
$string2 = <<<'NOWDOC'
Hello world!
Hello world!
NOWDOC;
Функции для работы со строками.
Конкатенация - соединение строк.
$string1 = 'Hello';
$string2 = 'world';
echo $string1 . ' ' . $string2;
Определение длины строки - strlen($string).
$string1 = 'Hello';
echo strlen($string1);
Выделение подстроки - substr($string, $start [, $length])
$string1 = 'Hello';
echo substr($string1, 1); // ello
echo substr($string1, 1, 2); // el
Поиск подстроки - strpos($haystack, $needle, [, $offset])
$where = 'Hello';
$find = 'el';
$find2 = 'world';
echo strpos($where, $find);
echo strpos($where, $find2);
Массивы
Массив - это набор элементов, к каждому из которых можно обратиться по индексу
или имени. Все массивы в PHP являются ассоциативными, т.е. остоят из пар
"ключ"="значение".
Объявление массивов:
$array = array(
"foo" => "bar",
"bar" => "foo",
);
// Начиная с PHP 5.4
$array = [
"foo" => "bar",
"bar" => "foo",
];
$array = [1, 2, 3, 4, 'wow_string_O_o'];
echo $array[1]; // 2
$array = [
'string',
0 => 'null index',
3 => 'third index',
];
print_r($array); // ???
$userArray = [
1,
'key' => 'auynx2p318jnasd',
'login' => 'admin',
];
Операторы для работы с массивами
Функции для работы с массивами
count($array [, $mode]) - размер массива
$array = [1, 2, 3, 4];
echo count($array); // 4
array_merge($array1 [, $array2 ...]) - перемешивание двух и более массивов
$array1 = [1, 2, 3, 4];
$array2 = [5, 6, 7, 8];
$array3 = array_merge($array1, $array2); // 1, 2, 3, 4, 5, 6, 7, 8
in_array($needle, $haystack [, $strict]) - проверяет, есть-ли в массиве значение
$array = ['Hello', 'world'];
var_dump(in_array('world', $array));
var_dump(in_array('test', $array));
key_exists($key, $array) - проверяет, есть-ли в массиве указанный ключ
$array = ['Hello' => 1, 'world' => 2];
var_dump(key_exists('Hello', $array));
var_dump(key_exists('test', $array));
sort(&$array [, $sort_flag]) - сортирует массив по возрастанию
$array = [2, 5, 6, 11, 8];
sort($array);
var_dump($array);
Условия.
Условная конструкция if / if-else / if-elseif-else
$a = 13;
if ($a != 13) {
echo 'var != 13';
} else {
echo 'var == 13';
}
if ($a == 13) {
echo 'var == 13';
} else if ($a > 13) {
echo 'var > 13';
} else {
echo ' ... ';
}
Switch
$a = 'Hello';
switch($a) {
case 'Hello' : {
echo $a . ' world';
break;
}
case 'world' : {
echo 'Hello ' . $a;
break;
}
default: {
echo 'Hello world and ' . $a;
}
}
Тернарный оператор
Схема: логическое выражение ? выражение1 : выражение2.
$date = isset($_GET['start_date']) ? $_GET['start_date'] : null;
$age = rand(200);
$message = ($age < 3) ? 'Здравствуй, малыш!' :
($age < 18) ? 'Привет!' :
($age < 100) ? 'Здравствуйте!' :
'Какой необычный возраст!';
Циклы.
for ($expr1; $expr2; $expr3) - выполняется, пока истинно выражение $expr2.
foreach ($array_expr as $value) / foreach ($array_expr as $key => $value) - перебирает
все элементы из массива $array_expr.
while ($expr) - выполняется, пока истинно выражение $expr.
do { … } while ($expr) - Выполняется один раз и далее, пока истинно выражение $expr.
for ($iterator = 0; $iterator < 100; $iterator++) {
echo $iterator;
if (($iterator % 10) == 0) continue;
if ($iterator == 89) break;
}
$array = [1, 2, 3, 4 ,5];
foreach ($array as $value) {
echo $value;
}
$array = [
'id' => 13,
'login' => 'admin',
'key' => 'x1m389kqwejnxqjkw',
];
foreach ($array as $key => $value) {
echo $key . ' : ' . $value;
}
$age = 0;
while ($true) {
echo 'age: ' . $age;
$age++;
if ($age == 6) {
echo 'Go to school';
break;
}
}
$age = 0;
do {
echo 'age: ' . $age;
} while ($age > 18);
Функции exit() и die()
Функции exit($string) и die($string) - эквивалентны. Они выводят сообщение,
переданное в них и прекращают работу скрипта.
die('exit');
exit('something wrong');
exit;
die;
Require и Include
include “file” / include(“file”) - подключает и выполняет указанный файл.
include "3.php";
echo 'Мы вывели содержимое файла 3.php';
require “file” / require(“file”) - аналог функции include.
require "3.php";
echo 'А затем еще раз подключили и вывели файл 3.php';
eval в php
eval ($code) - выполняет произвольный php-код переданный в строке $code.
eval('echo "Hello world";');
eval('$a=4;$b=isset($_GET['login'])?strrolower($_GET['login']):'admin';if($b!='admin'){echo
$b}else{echo $a}');
$authEntity = [
'type' => 'ROLE',
'description' => 'auth entity for user',
'bizRule' => 'if ($data->user_access_type == 4) return true;
else return false;'
];
isset и unset
isset ($var) - проверяет, была-ли определена переменная $var со значением
отличным от null.
$var = 1;
var_dump($var); // true
var_dump($var1); // false
unset ($var) - удаляет переменную $var.
$arr = [
'id' => 1,
'login' => 'admin',
'key' => 'x1m2391x3',
];
var_dump($arr);
unset($arr['key']);
Глобальные переменные
Переменные, которые доступны всей программе, включая подпрограммы
(пользовательские функции). Чтобы сделать переменную глобальной, необходимо
добавить ключевое слово global.
$SECONDS_IN_MINUTE = 60;
global $SECONDS_IN_MINUTE;
Суперглобальные переменные: $GLOBALS, $_SERVER, $_GET, $_POST, $_FILES,
$_COOKIE, $_SESSION, $_REQUEST, $_ENV.
echo $_SERVER['REMOTE_ADDR'];
echo $_SERVER["REDIRECT_STATUS"] ;
Дата и время в php.
date($format [, $timestamp]) - возвращает строку которой соответствует передданое время.
$format - задает формат возвращаемой даты, $timestamp - метка времени в форматe
unixtime.
strtotime($time [, $now]) - возвращает метку времени в формате unixtime. $time - строка
обозначающее время относительно текущего времени
$date = date('Y-m-d H:i:s');
$date = date('Y-m-d H:i:s', strtotime('+ 1 hour'));
date_default_timezone_set ($timeZone) - устанавливает переданную временную задану.
Константы
define('SECONDS_IN_MINUTE', 60);
define('DAY_IN_YEAR', 365);
echo SECONDS_IN_MINUTE;
echo DAY_IN_YEAR;
const DAY_IN_WEEK = 7;
const HOUR_IN_DAY = 24;
echo DAY_IN_WEEK;
echo HOUR_IN_DAY;
Спасибо за внимание.

More Related Content

What's hot

Python
PythonPython
Pythonpelid
 
PHP Tricks
PHP TricksPHP Tricks
PHP TricksBlackFan
 
Groovy On Grails
Groovy On GrailsGroovy On Grails
Groovy On Grailsguest32215a
 
Динамический код: модифицируем таблицу символов во время выполнения. Елена Ши...
Динамический код: модифицируем таблицу символов во время выполнения. Елена Ши...Динамический код: модифицируем таблицу символов во время выполнения. Елена Ши...
Динамический код: модифицируем таблицу символов во время выполнения. Елена Ши...Moscow.pm
 
Пластилиновый код: как перестать кодить и начать жить
Пластилиновый код: как перестать кодить и начать житьПластилиновый код: как перестать кодить и начать жить
Пластилиновый код: как перестать кодить и начать житьMoscow.pm
 
Что нового в PHP-5.3
Что нового в PHP-5.3 Что нового в PHP-5.3
Что нового в PHP-5.3 phpclub
 
Не верь никому или разработка эффективных приложений (Как писать по настоящем...
Не верь никому или разработка эффективных приложений (Как писать по настоящем...Не верь никому или разработка эффективных приложений (Как писать по настоящем...
Не верь никому или разработка эффективных приложений (Как писать по настоящем...Moscow.pm
 
Подробная презентация JavaScript 6 в 1
Подробная презентация JavaScript 6 в 1Подробная презентация JavaScript 6 в 1
Подробная презентация JavaScript 6 в 1Vasya Petrov
 
Параллельные вычисления в Perl 6
Параллельные вычисления в Perl 6Параллельные вычисления в Perl 6
Параллельные вычисления в Perl 6Andrew Shitov
 
Блоки, лямбды, замыкания
Блоки, лямбды, замыканияБлоки, лямбды, замыкания
Блоки, лямбды, замыканияDmitriy Kiriyenko
 
JavaScript. Loops and functions (in russian)
JavaScript. Loops and functions (in russian)JavaScript. Loops and functions (in russian)
JavaScript. Loops and functions (in russian)Mikhail Davydov
 
ZFConf 2010: What News Zend Framework 2.0 Brings to Us
ZFConf 2010: What News Zend Framework 2.0 Brings to UsZFConf 2010: What News Zend Framework 2.0 Brings to Us
ZFConf 2010: What News Zend Framework 2.0 Brings to UsZFConf Conference
 
О безопасном использовании PHP wrappers
О безопасном использовании PHP wrappersО безопасном использовании PHP wrappers
О безопасном использовании PHP wrappersPositive Hack Days
 
Отладка в Erlang, trace/dbg
Отладка в Erlang, trace/dbgОтладка в Erlang, trace/dbg
Отладка в Erlang, trace/dbgYuri Zhloba
 
Нетривиальная обработка ошибок
Нетривиальная обработка ошибокНетривиальная обработка ошибок
Нетривиальная обработка ошибокoelifantiev
 

What's hot (19)

Python
PythonPython
Python
 
Приручаем linux-консоль
Приручаем linux-консольПриручаем linux-консоль
Приручаем linux-консоль
 
PHP Tricks
PHP TricksPHP Tricks
PHP Tricks
 
Groovy On Grails
Groovy On GrailsGroovy On Grails
Groovy On Grails
 
Динамический код: модифицируем таблицу символов во время выполнения. Елена Ши...
Динамический код: модифицируем таблицу символов во время выполнения. Елена Ши...Динамический код: модифицируем таблицу символов во время выполнения. Елена Ши...
Динамический код: модифицируем таблицу символов во время выполнения. Елена Ши...
 
Collider
ColliderCollider
Collider
 
Пластилиновый код: как перестать кодить и начать жить
Пластилиновый код: как перестать кодить и начать житьПластилиновый код: как перестать кодить и начать жить
Пластилиновый код: как перестать кодить и начать жить
 
Что нового в PHP-5.3
Что нового в PHP-5.3 Что нового в PHP-5.3
Что нового в PHP-5.3
 
Не верь никому или разработка эффективных приложений (Как писать по настоящем...
Не верь никому или разработка эффективных приложений (Как писать по настоящем...Не верь никому или разработка эффективных приложений (Как писать по настоящем...
Не верь никому или разработка эффективных приложений (Как писать по настоящем...
 
Почему Mojolicious?
Почему Mojolicious?Почему Mojolicious?
Почему Mojolicious?
 
Подробная презентация JavaScript 6 в 1
Подробная презентация JavaScript 6 в 1Подробная презентация JavaScript 6 в 1
Подробная презентация JavaScript 6 в 1
 
Параллельные вычисления в Perl 6
Параллельные вычисления в Perl 6Параллельные вычисления в Perl 6
Параллельные вычисления в Perl 6
 
Блоки, лямбды, замыкания
Блоки, лямбды, замыканияБлоки, лямбды, замыкания
Блоки, лямбды, замыкания
 
JavaScript. Loops and functions (in russian)
JavaScript. Loops and functions (in russian)JavaScript. Loops and functions (in russian)
JavaScript. Loops and functions (in russian)
 
Perl – жив?!
Perl – жив?!Perl – жив?!
Perl – жив?!
 
ZFConf 2010: What News Zend Framework 2.0 Brings to Us
ZFConf 2010: What News Zend Framework 2.0 Brings to UsZFConf 2010: What News Zend Framework 2.0 Brings to Us
ZFConf 2010: What News Zend Framework 2.0 Brings to Us
 
О безопасном использовании PHP wrappers
О безопасном использовании PHP wrappersО безопасном использовании PHP wrappers
О безопасном использовании PHP wrappers
 
Отладка в Erlang, trace/dbg
Отладка в Erlang, trace/dbgОтладка в Erlang, trace/dbg
Отладка в Erlang, trace/dbg
 
Нетривиальная обработка ошибок
Нетривиальная обработка ошибокНетривиальная обработка ошибок
Нетривиальная обработка ошибок
 

Similar to PHP basic

Стажировка 2016-07-14 02 Евгений Тарасенко. JavaScript
Стажировка 2016-07-14 02 Евгений Тарасенко. JavaScriptСтажировка 2016-07-14 02 Евгений Тарасенко. JavaScript
Стажировка 2016-07-14 02 Евгений Тарасенко. JavaScriptSmartTools
 
Страх и ненависть в исходном коде
Страх и ненависть в исходном кодеСтрах и ненависть в исходном коде
Страх и ненависть в исходном кодеKolya Korobochkin
 
PHP Advanced
PHP AdvancedPHP Advanced
PHP AdvancedNoveo
 
PHP 5.4: Что нового?
PHP 5.4: Что нового?PHP 5.4: Что нового?
PHP 5.4: Что нового?phpdevby
 
Язык программирования Go для Perl-программистов
Язык программирования Go для Perl-программистовЯзык программирования Go для Perl-программистов
Язык программирования Go для Perl-программистовAndrew Shitov
 
Present saint-per3-by-pavel-vlasov
Present saint-per3-by-pavel-vlasovPresent saint-per3-by-pavel-vlasov
Present saint-per3-by-pavel-vlasovPavel Vlasov
 
Что нового в Perl 5.14
Что нового в Perl 5.14Что нового в Perl 5.14
Что нового в Perl 5.14Andrew Shitov
 
ZFConf 2010: Zend Framework and Doctrine
ZFConf 2010: Zend Framework and DoctrineZFConf 2010: Zend Framework and Doctrine
ZFConf 2010: Zend Framework and DoctrineZFConf Conference
 
Принципы проектирования S.O.L.I.D
Принципы проектирования S.O.L.I.DПринципы проектирования S.O.L.I.D
Принципы проектирования S.O.L.I.DAndreyGeonya
 
Интеграция Яндекс Сервер
Интеграция Яндекс СерверИнтеграция Яндекс Сервер
Интеграция Яндекс СерверPVasili
 
Подробная презентация JavaScript 6 в 1
Подробная презентация JavaScript 6 в 1Подробная презентация JavaScript 6 в 1
Подробная презентация JavaScript 6 в 1Vasya Petrov
 
Problems of Automated Generation of Exploits on the Basis of Source Code
Problems of Automated Generation of Exploits on the Basis of Source CodeProblems of Automated Generation of Exploits on the Basis of Source Code
Problems of Automated Generation of Exploits on the Basis of Source CodePositive Hack Days
 
Solit 2014, Минусы ООП на примере языка PHP, Соловей Василий
Solit 2014, Минусы ООП на примере языка PHP, Соловей ВасилийSolit 2014, Минусы ООП на примере языка PHP, Соловей Василий
Solit 2014, Минусы ООП на примере языка PHP, Соловей Василийsolit
 
Symfony2. На чем можно сэкономить время при разработке?
Symfony2. На чем можно сэкономить время при разработке?Symfony2. На чем можно сэкономить время при разработке?
Symfony2. На чем можно сэкономить время при разработке?Stepan Tanasiychuk
 

Similar to PHP basic (20)

Стажировка 2016-07-14 02 Евгений Тарасенко. JavaScript
Стажировка 2016-07-14 02 Евгений Тарасенко. JavaScriptСтажировка 2016-07-14 02 Евгений Тарасенко. JavaScript
Стажировка 2016-07-14 02 Евгений Тарасенко. JavaScript
 
Страх и ненависть в исходном коде
Страх и ненависть в исходном кодеСтрах и ненависть в исходном коде
Страх и ненависть в исходном коде
 
PHP Advanced
PHP AdvancedPHP Advanced
PHP Advanced
 
UWDC 2013, Yii2
UWDC 2013, Yii2UWDC 2013, Yii2
UWDC 2013, Yii2
 
Суперсилы Chrome developer tools
Суперсилы Chrome developer toolsСуперсилы Chrome developer tools
Суперсилы Chrome developer tools
 
PHP 5.4: Что нового?
PHP 5.4: Что нового?PHP 5.4: Что нового?
PHP 5.4: Что нового?
 
Язык программирования Go для Perl-программистов
Язык программирования Go для Perl-программистовЯзык программирования Go для Perl-программистов
Язык программирования Go для Perl-программистов
 
Present saint-per3-by-pavel-vlasov
Present saint-per3-by-pavel-vlasovPresent saint-per3-by-pavel-vlasov
Present saint-per3-by-pavel-vlasov
 
Base php 0
Base php 0Base php 0
Base php 0
 
Base php 0
Base php 0Base php 0
Base php 0
 
Что нового в Perl 5.14
Что нового в Perl 5.14Что нового в Perl 5.14
Что нового в Perl 5.14
 
ZFConf 2010: Zend Framework and Doctrine
ZFConf 2010: Zend Framework and DoctrineZFConf 2010: Zend Framework and Doctrine
ZFConf 2010: Zend Framework and Doctrine
 
Perl in practice
Perl in practicePerl in practice
Perl in practice
 
Принципы проектирования S.O.L.I.D
Принципы проектирования S.O.L.I.DПринципы проектирования S.O.L.I.D
Принципы проектирования S.O.L.I.D
 
Интеграция Яндекс Сервер
Интеграция Яндекс СерверИнтеграция Яндекс Сервер
Интеграция Яндекс Сервер
 
Подробная презентация JavaScript 6 в 1
Подробная презентация JavaScript 6 в 1Подробная презентация JavaScript 6 в 1
Подробная презентация JavaScript 6 в 1
 
Problems of Automated Generation of Exploits on the Basis of Source Code
Problems of Automated Generation of Exploits on the Basis of Source CodeProblems of Automated Generation of Exploits on the Basis of Source Code
Problems of Automated Generation of Exploits on the Basis of Source Code
 
Solit 2014, Минусы ООП на примере языка PHP, Соловей Василий
Solit 2014, Минусы ООП на примере языка PHP, Соловей ВасилийSolit 2014, Минусы ООП на примере языка PHP, Соловей Василий
Solit 2014, Минусы ООП на примере языка PHP, Соловей Василий
 
Nginx.pm
Nginx.pmNginx.pm
Nginx.pm
 
Symfony2. На чем можно сэкономить время при разработке?
Symfony2. На чем можно сэкономить время при разработке?Symfony2. На чем можно сэкономить время при разработке?
Symfony2. На чем можно сэкономить время при разработке?
 

More from Noveo

Гуманитарные специальности в IT-индустрии
Гуманитарные специальности в IT-индустрииГуманитарные специальности в IT-индустрии
Гуманитарные специальности в IT-индустрииNoveo
 
Box model, display and position (HTML5 тема 07 - box model, display position)
Box model, display and position (HTML5 тема 07 - box model, display position)Box model, display and position (HTML5 тема 07 - box model, display position)
Box model, display and position (HTML5 тема 07 - box model, display position)Noveo
 
Ссылки, списки и меню (HTML5 тема 06 - ссылки, списки и меню)
Ссылки, списки и меню (HTML5 тема 06 - ссылки, списки и меню)Ссылки, списки и меню (HTML5 тема 06 - ссылки, списки и меню)
Ссылки, списки и меню (HTML5 тема 06 - ссылки, списки и меню)Noveo
 
Стилизация текста (HTML5 тема 05 - стилизация текста)
Стилизация текста (HTML5 тема 05 - стилизация текста)Стилизация текста (HTML5 тема 05 - стилизация текста)
Стилизация текста (HTML5 тема 05 - стилизация текста)Noveo
 
Семантика текста (HTML5 тема 04 - семантика текста)
Семантика текста (HTML5 тема 04 - семантика текста)Семантика текста (HTML5 тема 04 - семантика текста)
Семантика текста (HTML5 тема 04 - семантика текста)Noveo
 
Основы CSS (HTML5 тема 02 - основы CSS)
Основы CSS (HTML5 тема 02 - основы CSS)Основы CSS (HTML5 тема 02 - основы CSS)
Основы CSS (HTML5 тема 02 - основы CSS)Noveo
 
Структура HTML документа (HTML5 тема 01 - структура html документа)
Структура HTML документа (HTML5 тема 01 - структура html документа)Структура HTML документа (HTML5 тема 01 - структура html документа)
Структура HTML документа (HTML5 тема 01 - структура html документа)Noveo
 
Yii2
Yii2Yii2
Yii2Noveo
 
Сессии и авторизация
Сессии и авторизацияСессии и авторизация
Сессии и авторизацияNoveo
 
Rest
RestRest
RestNoveo
 
PHP and MySQL
PHP and MySQLPHP and MySQL
PHP and MySQLNoveo
 
MySQL
MySQLMySQL
MySQLNoveo
 
Push Notifications (Lecture 22 – push notifications)
Push Notifications (Lecture 22 – push notifications)Push Notifications (Lecture 22 – push notifications)
Push Notifications (Lecture 22 – push notifications)Noveo
 
RxJava+RxAndroid (Lecture 20 – rx java)
RxJava+RxAndroid (Lecture 20 – rx java)RxJava+RxAndroid (Lecture 20 – rx java)
RxJava+RxAndroid (Lecture 20 – rx java)Noveo
 
Работа с соцсетями (Lecture 19 – social)
Работа с соцсетями (Lecture 19 – social)Работа с соцсетями (Lecture 19 – social)
Работа с соцсетями (Lecture 19 – social)Noveo
 
Работа с геоданными (Lecture 18 – geolocation)
Работа с геоданными (Lecture 18 – geolocation)Работа с геоданными (Lecture 18 – geolocation)
Работа с геоданными (Lecture 18 – geolocation)Noveo
 
Animations (Lecture 17 – animations)
Animations (Lecture 17 – animations)Animations (Lecture 17 – animations)
Animations (Lecture 17 – animations)Noveo
 
Toolbar (Lecture 16 – toolbar)
Toolbar (Lecture 16 – toolbar)Toolbar (Lecture 16 – toolbar)
Toolbar (Lecture 16 – toolbar)Noveo
 
Material Design (Lecture 15 – material design)
Material Design (Lecture 15 – material design)Material Design (Lecture 15 – material design)
Material Design (Lecture 15 – material design)Noveo
 
Database (Lecture 14 – database)
Database (Lecture 14 – database)Database (Lecture 14 – database)
Database (Lecture 14 – database)Noveo
 

More from Noveo (20)

Гуманитарные специальности в IT-индустрии
Гуманитарные специальности в IT-индустрииГуманитарные специальности в IT-индустрии
Гуманитарные специальности в IT-индустрии
 
Box model, display and position (HTML5 тема 07 - box model, display position)
Box model, display and position (HTML5 тема 07 - box model, display position)Box model, display and position (HTML5 тема 07 - box model, display position)
Box model, display and position (HTML5 тема 07 - box model, display position)
 
Ссылки, списки и меню (HTML5 тема 06 - ссылки, списки и меню)
Ссылки, списки и меню (HTML5 тема 06 - ссылки, списки и меню)Ссылки, списки и меню (HTML5 тема 06 - ссылки, списки и меню)
Ссылки, списки и меню (HTML5 тема 06 - ссылки, списки и меню)
 
Стилизация текста (HTML5 тема 05 - стилизация текста)
Стилизация текста (HTML5 тема 05 - стилизация текста)Стилизация текста (HTML5 тема 05 - стилизация текста)
Стилизация текста (HTML5 тема 05 - стилизация текста)
 
Семантика текста (HTML5 тема 04 - семантика текста)
Семантика текста (HTML5 тема 04 - семантика текста)Семантика текста (HTML5 тема 04 - семантика текста)
Семантика текста (HTML5 тема 04 - семантика текста)
 
Основы CSS (HTML5 тема 02 - основы CSS)
Основы CSS (HTML5 тема 02 - основы CSS)Основы CSS (HTML5 тема 02 - основы CSS)
Основы CSS (HTML5 тема 02 - основы CSS)
 
Структура HTML документа (HTML5 тема 01 - структура html документа)
Структура HTML документа (HTML5 тема 01 - структура html документа)Структура HTML документа (HTML5 тема 01 - структура html документа)
Структура HTML документа (HTML5 тема 01 - структура html документа)
 
Yii2
Yii2Yii2
Yii2
 
Сессии и авторизация
Сессии и авторизацияСессии и авторизация
Сессии и авторизация
 
Rest
RestRest
Rest
 
PHP and MySQL
PHP and MySQLPHP and MySQL
PHP and MySQL
 
MySQL
MySQLMySQL
MySQL
 
Push Notifications (Lecture 22 – push notifications)
Push Notifications (Lecture 22 – push notifications)Push Notifications (Lecture 22 – push notifications)
Push Notifications (Lecture 22 – push notifications)
 
RxJava+RxAndroid (Lecture 20 – rx java)
RxJava+RxAndroid (Lecture 20 – rx java)RxJava+RxAndroid (Lecture 20 – rx java)
RxJava+RxAndroid (Lecture 20 – rx java)
 
Работа с соцсетями (Lecture 19 – social)
Работа с соцсетями (Lecture 19 – social)Работа с соцсетями (Lecture 19 – social)
Работа с соцсетями (Lecture 19 – social)
 
Работа с геоданными (Lecture 18 – geolocation)
Работа с геоданными (Lecture 18 – geolocation)Работа с геоданными (Lecture 18 – geolocation)
Работа с геоданными (Lecture 18 – geolocation)
 
Animations (Lecture 17 – animations)
Animations (Lecture 17 – animations)Animations (Lecture 17 – animations)
Animations (Lecture 17 – animations)
 
Toolbar (Lecture 16 – toolbar)
Toolbar (Lecture 16 – toolbar)Toolbar (Lecture 16 – toolbar)
Toolbar (Lecture 16 – toolbar)
 
Material Design (Lecture 15 – material design)
Material Design (Lecture 15 – material design)Material Design (Lecture 15 – material design)
Material Design (Lecture 15 – material design)
 
Database (Lecture 14 – database)
Database (Lecture 14 – database)Database (Lecture 14 – database)
Database (Lecture 14 – database)
 

PHP basic

  • 2. Компилятор. Интерпретатор. Компилятор - трансляция программы, составленной на исходном языке высокого уровня, в эквивалентную программу на низкоуровневом языке, близком машинному коду (абсолютный код, объектный модуль, иногда на язык ассемблера). Интерпретатор - пооператорный (покомандный, построчный) анализ, обработка и тут же выполнение исходной программы или запроса (в отличие от компиляции, при которой программа транслируется без её выполнения).
  • 3. PHP теги. Встраивание кода в html. <html> <head> <title>PHP теги. Встраивание кода в html.</title> </head> <body> <p> <?php echo 'Hello world'?> </p> </body> </html> <?= 'short tag' ?> <? echo 'Hello world' ?>
  • 4. Комментарии. // Это однострочный комментарий, он комметирует все, что находится за ним и до конца строки /* Это многострочный комментарий Все, что находится между символами - не будет исполняться или отображаться. */ # Это комментарий в стиле оболочки Unix
  • 5. Переменные. Переменные в PHP представлены знаком доллара с последующим именем переменной. Имя переменной чувствительно к регистру. $x = 5; $salary = 12500.00; $BIG_NUMBER = 100000; $big_number = 500000; $4site = 123; $русский = true;
  • 6. Типы данных. Boolean - логическое значение, true или false. Integer - целочисленное значение. Граничные значения есть в PHP константах PHP_INT_MAX и PHP_INT_MIN. Float - он же double, число с плавающей точкой. String - строки. Array - массивы. Object - объекты. Resource - ресурсы. NULL - null.
  • 7. Функции var_dump() и print_r() $number = 1; var_dump($number); $string = 'Hello world'; print_r($string);
  • 9. Ссылки. $a = 3; $b = &$a; // $b - это ссылка на a echo $a; // выводит 3 echo $b; // выводит 3 $a = 4; // меняем значение в переменной $a echo $a; // выводит 4 echo $b; // выводит 4
  • 13. Строки Объявление через двойные или одинарные ковычки. $string1 = 'Hello world'; $string2 = "Hello world"; echo $string1; echo $string2; echo 'Это выведет название переменной $string1'; echo "Это выведет содержание переменной $string2";
  • 14. Синтаксис HEREDOC и NOWDOC $string1 = <<<HEREDOC Hello world! Hello world! HEREDOC; $string2 = <<<'NOWDOC' Hello world! Hello world! NOWDOC;
  • 15. Функции для работы со строками. Конкатенация - соединение строк. $string1 = 'Hello'; $string2 = 'world'; echo $string1 . ' ' . $string2; Определение длины строки - strlen($string). $string1 = 'Hello'; echo strlen($string1);
  • 16. Выделение подстроки - substr($string, $start [, $length]) $string1 = 'Hello'; echo substr($string1, 1); // ello echo substr($string1, 1, 2); // el Поиск подстроки - strpos($haystack, $needle, [, $offset]) $where = 'Hello'; $find = 'el'; $find2 = 'world'; echo strpos($where, $find); echo strpos($where, $find2);
  • 17. Массивы Массив - это набор элементов, к каждому из которых можно обратиться по индексу или имени. Все массивы в PHP являются ассоциативными, т.е. остоят из пар "ключ"="значение". Объявление массивов: $array = array( "foo" => "bar", "bar" => "foo", ); // Начиная с PHP 5.4 $array = [ "foo" => "bar", "bar" => "foo", ];
  • 18. $array = [1, 2, 3, 4, 'wow_string_O_o']; echo $array[1]; // 2 $array = [ 'string', 0 => 'null index', 3 => 'third index', ]; print_r($array); // ??? $userArray = [ 1, 'key' => 'auynx2p318jnasd', 'login' => 'admin', ];
  • 19. Операторы для работы с массивами
  • 20. Функции для работы с массивами count($array [, $mode]) - размер массива $array = [1, 2, 3, 4]; echo count($array); // 4 array_merge($array1 [, $array2 ...]) - перемешивание двух и более массивов $array1 = [1, 2, 3, 4]; $array2 = [5, 6, 7, 8]; $array3 = array_merge($array1, $array2); // 1, 2, 3, 4, 5, 6, 7, 8 in_array($needle, $haystack [, $strict]) - проверяет, есть-ли в массиве значение $array = ['Hello', 'world']; var_dump(in_array('world', $array)); var_dump(in_array('test', $array));
  • 21. key_exists($key, $array) - проверяет, есть-ли в массиве указанный ключ $array = ['Hello' => 1, 'world' => 2]; var_dump(key_exists('Hello', $array)); var_dump(key_exists('test', $array)); sort(&$array [, $sort_flag]) - сортирует массив по возрастанию $array = [2, 5, 6, 11, 8]; sort($array); var_dump($array);
  • 22. Условия. Условная конструкция if / if-else / if-elseif-else $a = 13; if ($a != 13) { echo 'var != 13'; } else { echo 'var == 13'; } if ($a == 13) { echo 'var == 13'; } else if ($a > 13) { echo 'var > 13'; } else { echo ' ... '; }
  • 23. Switch $a = 'Hello'; switch($a) { case 'Hello' : { echo $a . ' world'; break; } case 'world' : { echo 'Hello ' . $a; break; } default: { echo 'Hello world and ' . $a; } }
  • 24. Тернарный оператор Схема: логическое выражение ? выражение1 : выражение2. $date = isset($_GET['start_date']) ? $_GET['start_date'] : null; $age = rand(200); $message = ($age < 3) ? 'Здравствуй, малыш!' : ($age < 18) ? 'Привет!' : ($age < 100) ? 'Здравствуйте!' : 'Какой необычный возраст!';
  • 25. Циклы. for ($expr1; $expr2; $expr3) - выполняется, пока истинно выражение $expr2. foreach ($array_expr as $value) / foreach ($array_expr as $key => $value) - перебирает все элементы из массива $array_expr. while ($expr) - выполняется, пока истинно выражение $expr. do { … } while ($expr) - Выполняется один раз и далее, пока истинно выражение $expr.
  • 26. for ($iterator = 0; $iterator < 100; $iterator++) { echo $iterator; if (($iterator % 10) == 0) continue; if ($iterator == 89) break; } $array = [1, 2, 3, 4 ,5]; foreach ($array as $value) { echo $value; } $array = [ 'id' => 13, 'login' => 'admin', 'key' => 'x1m389kqwejnxqjkw', ]; foreach ($array as $key => $value) { echo $key . ' : ' . $value; }
  • 27. $age = 0; while ($true) { echo 'age: ' . $age; $age++; if ($age == 6) { echo 'Go to school'; break; } } $age = 0; do { echo 'age: ' . $age; } while ($age > 18);
  • 28. Функции exit() и die() Функции exit($string) и die($string) - эквивалентны. Они выводят сообщение, переданное в них и прекращают работу скрипта. die('exit'); exit('something wrong'); exit; die;
  • 29. Require и Include include “file” / include(“file”) - подключает и выполняет указанный файл. include "3.php"; echo 'Мы вывели содержимое файла 3.php'; require “file” / require(“file”) - аналог функции include. require "3.php"; echo 'А затем еще раз подключили и вывели файл 3.php';
  • 30. eval в php eval ($code) - выполняет произвольный php-код переданный в строке $code. eval('echo "Hello world";'); eval('$a=4;$b=isset($_GET['login'])?strrolower($_GET['login']):'admin';if($b!='admin'){echo $b}else{echo $a}'); $authEntity = [ 'type' => 'ROLE', 'description' => 'auth entity for user', 'bizRule' => 'if ($data->user_access_type == 4) return true; else return false;' ];
  • 31. isset и unset isset ($var) - проверяет, была-ли определена переменная $var со значением отличным от null. $var = 1; var_dump($var); // true var_dump($var1); // false unset ($var) - удаляет переменную $var. $arr = [ 'id' => 1, 'login' => 'admin', 'key' => 'x1m2391x3', ]; var_dump($arr); unset($arr['key']);
  • 32. Глобальные переменные Переменные, которые доступны всей программе, включая подпрограммы (пользовательские функции). Чтобы сделать переменную глобальной, необходимо добавить ключевое слово global. $SECONDS_IN_MINUTE = 60; global $SECONDS_IN_MINUTE; Суперглобальные переменные: $GLOBALS, $_SERVER, $_GET, $_POST, $_FILES, $_COOKIE, $_SESSION, $_REQUEST, $_ENV. echo $_SERVER['REMOTE_ADDR']; echo $_SERVER["REDIRECT_STATUS"] ;
  • 33. Дата и время в php. date($format [, $timestamp]) - возвращает строку которой соответствует передданое время. $format - задает формат возвращаемой даты, $timestamp - метка времени в форматe unixtime. strtotime($time [, $now]) - возвращает метку времени в формате unixtime. $time - строка обозначающее время относительно текущего времени $date = date('Y-m-d H:i:s'); $date = date('Y-m-d H:i:s', strtotime('+ 1 hour')); date_default_timezone_set ($timeZone) - устанавливает переданную временную задану.
  • 34. Константы define('SECONDS_IN_MINUTE', 60); define('DAY_IN_YEAR', 365); echo SECONDS_IN_MINUTE; echo DAY_IN_YEAR; const DAY_IN_WEEK = 7; const HOUR_IN_DAY = 24; echo DAY_IN_WEEK; echo HOUR_IN_DAY;