-
Notifications
You must be signed in to change notification settings - Fork 0
/
php_7_1.php
87 lines (68 loc) · 2.21 KB
/
php_7_1.php
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
<?php
//обнуляемые типы
//указанные параметры и возвращаемые значения, могут быть как указанного типа, так и null.
function testReturn(): ?string
{
return 'elePHPant';
}
var_dump(testReturn());
function testReturn2(): ?string
{
return null;
}
var_dump(testReturn2());
function test(?string $name)
{
var_dump($name);
}
test('elePHPant');
test(null);
test();
//Ничего не возвращающие функции
//не содержать ни одного оператора return, либо использовать его без параметра.
//null не является корректным значением для возврата в таких функциях.
function swap(&$left, &$right): void
{
if ($left === $right) {
return;
}
$tmp = $left;
$left = $right;
$right = $tmp;
}
$a = 1;
$b = 2;
var_dump(swap($a, $b), $a, $b);
//Видимость констант класса
class ConstDemo
{
const PUBLIC_CONST_A = 1;
public const PUBLIC_CONST_B = 2;
protected const PROTECTED_CONST = 3;
private const PRIVATE_CONST = 4;
}
//Обработка нескольких исключений в одном блоке catch
try {
// Какой то код
} catch (FirstException | SecondException $e) {
// Обрабатываем оба исключения
}
//Поддержка ключей в list()
//Теперь вы можете указывать ключи в операторе list() или в его новом коротком синтаксисе [].
//Это позволяет деструктурировать массивы с нечисловыми или непоследовательными ключами.
$data = [
["id" => 1, "name" => 'Tom'],
["id" => 2, "name" => 'Fred'],
];
// стиль list()
list("id" => $id1, "name" => $name1) = $data[0];
// стиль []
["id" => $id1, "name" => $name1] = $data[0];
// стиль list()
foreach ($data as list("id" => $id, "name" => $name)) {
// logic here with $id and $name
}
// стиль []
foreach ($data as ["id" => $id, "name" => $name]) {
// logic here with $id and $name
}