منبع اصلی نوشتار زیر در این لینک قرار دارد

PHP در راه انتشار – قسمت اول

اگه سازندگان PHP روی حرفشون بمونن قراره تا آخر این ماه میلادی نسخه جدید PHP منتشر بشه.حالا اینکه نسخه ۶ چیشد که یک داستانه ولی امکانات PHP جدید داستان دیگه ای داره.قبلا هم توی پست HHVM، باعث پیشرفت PHP یکم درباره امکانات نسخه جدید توضیح داده بودم ولی اینجا میخوام علاوه بر کد های اونها چند تا مورد دیگه رو هم بگم.

مقایسه سرعت PHP7

افزایش سرعت

مورد اول که قبلا هم گفته بودم زیاد شدن خیلی زیاد سرعت مفسر پی اچ پی هست که دلیلشم بازنویسی مفسرش هست.

دو عملگر جدید

در نسخه جدید دو عملگر مقایسه ای اضافه شده اند.مورد اول عملگر <=> و مورد دوم عملگر ??.

به مثال ها توجه کنید:

مثال عملگر <=>

<?php
echo 3 <=> 5;// -1
echo 3 <=> 3;// 0
echo 3 <=> 2;// 1
?>

مثال عملگر  ?? (برای توضیح بهتر اینجوری مثال میزنم که خط اول معادل خط دوم هست)

$a = $b ?? "Not Set";
$a = isset($b) ? $b : "Not Set";

حذف شدن کامل بخشی از موارد منسوخ شده

در نسخه های قبلی یکسری از آیتم ها از جمله توابع منسوخ شده بودند که در این نسخه به طور کاملا از مفسر حذف شده اند.از این توابع میتوان به توابع mysql اشاره کرد که توابع mysqli جایگزین آنها شدند.

برای اینکه ببینید دقیقا چیا حذف شدن میتونید به متنی که سایت خود پی اچ پی در این مورد منتشر کرده مراجعه کنید.

تعین نوع داده بازگشتی

این مورد جزو مواردی هست که که قبلا هم توضیح کمی دربارش دادم. کار این مورد اینه که نوع داده بازگشتی رو مشخص میکنید تا اگه داده دیگه ای بازگشت داده شد برنامه اگر قابل تبدیل بود اونو به نوع داده مشخص شده تبدیل کنه و اگر نه در صورتی که strict_types فعال باشه برنامه ارور بده.

<?php
declare(strict_types=1);

function sum($a, $b): int {
    return $a + $b;
}
var_dump(sum(1, 2));//int(3)
var_dump(sum(1, 2.5));//Fatal error: Uncaught TypeError: Return value of sum() must be of the type integer, float returned in - on line 5 in -:5
?>

تعین نوع داده ورودی

بعد از تعین نوع داده بازگشتی بلاخره نوع داده ورودی رو هم مشخص میکنیم.مثلا یک تابع فلان ورودی که میگیره از چه نوعی باید باشه.باز هم به مثال توجه کنید:

<?php
function x(int $r){
    return $r + 2;
}
?>

و البته این مورد هم در حالت عادی ارور نمیده ولی با فعال کردن strict_types درصورت درست نبودن ورودی ارور میده.

اینها مهمترین تغیراتاین نسخه از PHP بودند.یکسری دیگه از تغیرات رو هم توی پست جدا معرفی میکنم.(امیدوارم تا قبل از انتشار نسخه نهایی منتشرش بکنم.)



برچسب ها : ,