array_map(function (User $user) { return $user->id; }, $users)
array_map(fn(User $user) => $user->id, $users)
は親スコープにアクセスでき、
use
$this短いクロージャには、
return
ここで詳しく読むことができます。 RFC
class A { public string $name; public Foo $foo; }
RFC
ええー
。 。 。そして逆変数。class ParentType {} class ChildType extends ParentType {} class A { public function covariantReturnTypes(): ParentType { /* … */ } } class B extends A { public function covariantReturnTypes(): ChildType { /* … */ } }
RFC
class A { public function contraVariantArguments(ChildType $type) { /* … */ } } class B extends A { public function contraVariantArguments(ParentType $type) { /* … */ } }
$data['date'] = $data['date'] ?? new DateTime();
RFC
$data['date'] ??= new DateTime();
RFC
RFC
カスタム オブジェクトのシリアル化
RFC
__unserialize という 2 つの新しいマジック メソッドが追加されています。これらのメソッドと
__sleep および
__wakeup の違いについては、
RFC で説明されています。
接続優先度RFC
$arrayA = [1, 2, 3]; $arrayB = [4, 5]; $result = [0, ...$arrayA, ...$arrayB, 6 ,7]; // [0, 1, 2, 3, 4, 5, 6, 7]
echo "sum: " . $a + $b;
echo ("sum: " . $a) + $b;
可決するには常に 2/3 の過半数の支持が必要です。
ReflectionReference
クラスが追加されました。mb_str_split
函数 RFC
此函数提供与 str_split
多字节字符串相同的功能。
ext-hash
RFC
正如标题所说,此扩展现在可在所有 PHP 安装中永久支持使用。
由于 PEAR 不再支持维护,核心团队决定在 PHP 7.4 中删除它的默认安装。
对如何使用散列库进行内部更改,以便用户可以更轻松地使用它们。
ext/wwdx
RFC
此数据交换格式从未标准化,现在已经弃用该扩展。
短开标签 <?
已被弃用,将在 PHP 8 中删除。短声明标记 <?=
不受影响。
三元运算符在 PHP 中有一些奇怪的怪癖。此 RFC 为嵌套的三元语句添加了弃用。在 PHP 8 中,此弃用将转换为编译时错误。
1 ? 2 : 3 ? 4 : 5; // deprecated (1 ? 2 : 3) ? 4 : 5; // ok
升级PHP版本时,您应该始终查看完整的 UPGRADING 文档。
以下是一些突出显示的向后不兼容的更改:
var_dump
一个 DateTime
或 DateTimeImmutable
实例后面将不再保留对象的可访问属性。openssl_random_pseudo_bytes
将在错误情况下抛出异常。PDO
或 PDOStatement
实例将生成一个 Exception
而不是一个 PDOException
。调用 get_object_vars()
上的 ArrayObject
实例将返回的属性 ArrayObject
本身,而不是包装的数组或对象的值。请注意,(array)
强制转换不受影响。
更多PHP相关技术文章,请访问PHP教程栏目进行学习!
以上がPHP 7.4 の新機能について 3 分で学びましょうの詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。