Вход Регистрация
ruen

Уроки простыми словами. Урок 3. Все операторы PHP с примерами, с выводом работы кода на экран.


<?php

// var_dump($variable);

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

// Арифметические
	// Сложение
	$variable = 2 + 1; // int(3)

	// Вычитание
	$variable = 3 - 1; // int(2)

	// Умножение
	$variable = 2 * 3; // int(6)

	// Деление
	$variable = 2 / 1; // int(2)

	// Деление по модулю
	$variable = 2 % 1; // int(0)

	// Возведение в степень
	$variable = 2 ** 3; // int(8)

// Операторы присваивания
	// Равно
	$variable = 5; // int(5)

	// Сложение
	$variable += 1; // int(6)

	// Вычитание
	$variable -= 1; // int(5)

	// Умножение
	$variable *= 2; // int(10)

	// Деление
	$variable /= 2; // int(5)

	// Деление по модулю
	$variable %= 3; // int(2)

	// Возведение в степень
	$variable **= 3; // int(8)

	// Оператор сравнения с null
	$variable ??= $variable; // int(8)

	// Побитовое И
	$variable &= 1; // int(0)

	// Побитовое Или
	$variable |= 2; // int(2)

	// Побитовое Исключающее или
	$variable ^= 3; // int(1)

	// Побитовое Сдвиг влево
	$variable <<= 4; // int(16)

	// Побитовое Сдвиг вправо
	$variable >>= 5; // int(0)

// Операторы сравнения
	// Равно
	$variable = 1 == 2; // bool(false)

	// Идентично
	$variable = 1 === 2; // bool(false)

	// Не равно
	$variable = 1 != 2; // bool(true)
	$variable = 1 <> 2; // bool(true)

	// Не идентично
	$variable = 1 !== 2; // bool(true)

	// Больше
	$variable = 1 > 2; // bool(false)

	// Меньше
	$variable = 1 < 2; // bool(true)

	// Больше или равно
	$variable = 1 >= 2; // bool(false)

	// Меньше или равно
	$variable = 1 <= 2; // bool(true)

// Операторы увеличения и уменьшения (инкремент и декремент)
	// Префиксный инкремент
	$variable = 3;
	$variable = ++$variable; // int(4)

	// Постфиксный инкремент
	$variable = $variable++; // int(4)

	// Префиксный декремент
	$variable = --$variable; // int(3)

	// Постфиксный декремент
	$variable = $variable--; // int(3)

// Логические операторы
	// И
	$variable = 1 and 2; // int(1)
	$variable = 1 && 2; // bool(true)

	// Или
	$variable = 1 or 2; // int(1)
	$variable = 1 || 2; // bool(true)

	// Не или
	$variable = 1 xor 2; // int(1)

	// Не
	$variable = !$variable; // bool(false)

// Строчные операторы
	// Конкатенация
	$variable = 'Test '.' test'; // string(10) "Test test"

	// Конкатенация с присвоением
	$variable .= ' test'; // string(15) "Test test test"

// Операторы массива
	// Слияние
	$variable = [1,] + [2,]; // array(1) { [0]=> int(1) }

	// Равно
	$variable = [1,] == [2,]; // bool(false)

	// Идентично
	$variable = [1,] === [2,]; // bool(false)

	// Не равно
	$variable = [1,] != [2,]; // bool(true)
	$variable = [1,] <> [2,]; // bool(true)

	// Не идентично
	$variable = [1,] !== [2,]; // bool(true)

// Побитовые операторы
	// И
	$variable = 1 & 2; // int(0)

	// Или
	$variable = 1 | 2; // int(3)

	// Исключающее или
	$variable = 1 ^ 2; // int(3)

	// Сдвиг влево
	$variable = 1 << 2; // int(4)

	// Сдвиг вправо
	$variable = 1 >> 2; // int(0)

	// Отрицание
	$variable = ~1; // int(-2)

// Другие операторы
	// Объекты - создание, клонирование, выяснение принадлежности
	class A {}
	$variable = new A(); // object(A)#1 (0) { }
	$variable = clone $variable; // object(A)#2 (0) { }
	$variable = $variable instanceof A; // bool(true)

	// Приведение типов
	$variable = (int)$variable; // int(1)
	$variable = (float)$variable; // float(1)
	$variable = (string)$variable; // string(1) "1"
	$variable = (array)$variable; // array(1) { [0]=> string(1) "1" }
	$variable = (object)$variable; // object(stdClass)#2 (1) { ["0"]=> string(1) "1" }
	$variable = (bool)$variable; // bool(true)

	// Взятие по ссылке (сослаться на переменную в оперативной памяти)
	$variable = &$variable; // bool(true)

	// Тернарный оператор
	$variable = 1 ?: 2; // int(1)
	$variable = $variable ? 2 : 3; // int(2)

	// Оператор сравнения с null
	$variable = $variable ?? 5; // int(2)

	// Космический корабль (spaceship), возвращает: 0 - если обе части равны, 1 - если левая часть больше, -1 - если правая часть больше
	$variable = 2 <=> 3; // int(-1)

	// Управление ошибками
	$variable = @$variable_error; // NULL

	// Оператор исполнения (shell_exec())
	$variable = `ls -al`; // NULL

	// Print
	$variable = print $variable; // int(1)

	// Yield ("урожай") - генератор, работает как обычная функция, при этом при повторном обращении перебор данных будет продолжен с предыдущего места остановки
	function test_yield() {
		yield 1;
		yield 2;
		yield 3;
	}
	$variable = iterator_to_array(test_yield()); // array(3) { [0]=> int(1) [1]=> int(2) [2]=> int(3) }
	
	function test_yield_from() {
		yield 0;
		yield from test_yield(); // Делегирование генератора
		yield 5;
	}
	$variable = iterator_to_array(test_yield_from()); // array(3) { [0]=> int(1) [1]=> int(5) [2]=> int(3) }

Исходный код к уроку: скачать.
Комментарии (0)
Для комментирования войдите или зарегистрируйтесь.
Оставить заявку

Последние статьи

Популярные разделы

Eqsash (Инструменты)

Приложение для Android - VK LAST USER ID, отучитель от зависимости и т.д.:
Доступно в Google Play

Amessage (Общение)

Вход в веб-версию
Приложение для Android:
Доступно в Google Play

Поделиться

Подписаться

YouTube

Книги

IT-заметки - Простым языком о самом нужном (HTML, CSS, JavaScript, PHP, базы данных, Drupal, Битрикс, SEO, домены, безопасность и другое), PDF, 500 стр.