5.6+ == Выражения в константах == const ONE = 1; const TWO = ONE * 2; class C { const THREE = TWO + 1; const ONE_THIRD = ONE / self::THREE; const SENTENCE = 'Значение константы THREE - '.self::THREE; public function f($a = ONE + self::THREE) { return $a; } } echo (new C)->f()."n"; echo C::SENTENCE; == Массивы-константы == const ARR = ['a', 'b']; echo ARR[0]; == Функции с переменным количеством аргументов == function f($req, $opt = null, ...$params) { // $params - массив, содержащий все остальные аргументы. printf('$req: %d; $opt: %d; количество параметров: %d'."n", $req, $opt, count($params)); } f(1); f(1, 2); f(1, 2, 3); == Распаковка массива операцией ... == function add($a, $b, $c) { return $a + $b + $c; } $operators = [2, 3]; echo add(1, ...$operators); == Возведение в степень ** == $a = 2; $a **= 3; == Импорт констант и функций в use == namespace NameSpace { const FOO = 42; function f() { echo __FUNCTION__."n"; } } namespace { use const NameSpaceFOO; use function NameSpacef; echo FOO."n"; f(); }
PHP Справочник v0.05 © 2007-2024 Igor Salnikov aka SunDoctor