أعلن مجتمع تطوير لغة بي اتش بي عن إطلاق النسخة ٧٫٤ التي تعتبر الدورة التطويرية الرابعة من سلسلة بي اتش بي ٧.
أتت هذه ٧٫٤ بتحسينات كثيرة ومميزات جديدة من أهمها:
- نوع المتغيرات، حيث أصبح بالإمكان تحديد نوع المتغير بحيث لا يسمح بإسناد قيمة من غير نوعه المثال التالي يوضح ذلك:
<?php
class User {
public int $id;
public string $name;
}
?>
فمتغير $user->id لن يقبل اسناد قيمة غير عددية integer وكذلك $user->name لن يقبل غير قيمة نصية string.
- وظائف السهم وهي عبارة عن اختصارات لتعريف الوظائف المرتبطة بنطاق قيمي غير صريح انظر المثال التالي:
<?php
$factor = 10;
$nums = array_map(fn($n) => $n * $factor, [1, 2, 3, 4]);
// $nums = array(10, 20, 30, 40);
?>
- إضافة عامل الاسناد الدمجي المفرغ (??=) المثال التالي يوضح طريقة عمله:
<?php
$array['key'] ??= computeDefault();
// is roughly equivalent to
if (!isset($array['key'])) {
$array['key'] = computeDefault();
}
?>
- فك المتغيرات في المصفوفات لاحظ المثال التالي:
<?php
$parts = ['apple', 'pear'];
$fruits = ['banana', 'orange', ...$parts, 'watermelon'];
// ['banana', 'orange', 'apple', 'pear', 'watermelon'];
?>
- الفاصل الحرفي العددي، بحيث يمكن استخدام الشرطة السفلية بين الأرقام:
<?php
6.674_083e-11; // float
299_792_458; // decimal
0xCAFE_F00D; // hexadecimal
0b0101_1111; // binary
?>
- دعم المراجع الضعيفة وهي تسمح للمبرمج بالحفاظ على مرجع للكائن يسمح لذلك الكائن بأن يدمر . هذه الميزة مفيدة في إضافة التخزين المؤقت في تطوير البنى االبرمجية. المثال التالي يوضح آلية عملها:
<?php
$obj = new stdClass;
$weakref = WeakReference::create($obj);
var_dump($weakref->get());
unset($obj);
var_dump($weakref->get());
?>
والناتج سيكون :
object(stdClass)#1 (0) {
}
NULL
بالإضافة إلى ذلك هناك مجموعة من الدوال والملحقات هجرت ينبغي لمطور بي اتش بي أن يلم بها. للتفاصيل الكاملة راجع هذه الوصلة.