Sign in Registration
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) }

Исходный код к уроку: скачать.
Comments (0)
For commenting sign in or register.
Оставить заявку

Latest articles

Popular sections

Eqsash (Tools)

Android app - VK LAST USER ID, отучитель от зависимости и т.д.:
Скачать APK

Share this

Subscribe to

YouTube

Books

IT notes - In simple language about the most necessary things (HTML, CSS, JavaScript, PHP, databases, Drupal, Bitrix, SEO, domains, security and more), PDF, 500 p.

Am (Мессенджер)

Общение смайликами со звуком.

Не работает видео? Смотреть в VK

- Download APK-файл (Android);

- Веб-версия (и PWA);

- Page проекта.