ویژگی های جدیدPHP 7.1

در این مقاله، برخی از ویژگی های جدید آخرین نسخه منتشر شده از این زبان محبوب را با هم مرور می کنیم

ویژگی های جدیدPHP 7.1

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

در این مقاله، برخی از ویژگی های جدید آخرین نسخه منتشر شده از این زبان محبوب را با هم مرور می کنیم.

1- بررسی تعداد آرگومان های ارسالی

در صورتی که تعداد آرگومان های ارسالی با آرگومان های درخواستی تابع مطابقت نداشته باشد، به کاربر خطای Argument count error را نشان می دهد. اما اگر تابع ما به شکلی باشد که احتمال می دهیم برخی از پارامترهای ارسالی آن null باشند، می توانیم به صورت زیر از خطای نامبرده جلوگیری کنیم:

 

function sum(?int $a, ?int $b): ?int
{
    if ($a == null || $b == null) {
        return null;
    }
    return $a + $b;
}​

در این صورت شما حتماً باید آرگومان مربوطه را در هنگام فراخوانی تابع، ارسال کنید. حال این آرگومان می تواند null باشد یا مقدار داشته باشد.

 

2- تعریف آرایه به صورت همروند

از دیگر ویژگی های جالب توجه نسخه 7.1 زبان برنامه نویسی محبوب PHP تعریف آرایه به صورت همروند می باشد. برای نمونه، به مثال زیر توجه کنید:

["a" => $a, "b" => $b, "c" => $c] = ["a" => 1, "b" => 2, "c" => 3];

اگر دستور زیر را اجرا کنیم، خروجی به صورت زیر خواهد بود:

var_dump($a,$b);// output: int(1) int(2)

 

3- نوع داده Iterable Type

این نوع داده ( data type ) یک نوع داده جدید در PHP 7.1 محسوب می شود که در حقیقت یک نوع داده قوی تر از array می باشد.

گستره این نوع داده، کلاس ها را هم در بر گرفته و می توان گفت هر کلاسی که در PHP تعریف می شود، در حقیقت فرزند iterable است. یا به عبارت دیگر، iterable یک سوپر کلاس ( super class ) در پی اچ پی شده است.

 

4- اضافه شدن مقدار خروجی void

تعیین نوع خروجی برای اولین بار در PHP 7 معرفی شد ( که البته در زبان های برنامه نویسی سطح بالا اتفاق جدیدی نبود، تنها پی اچ پی را به یک زبان مدرن نزدیک تر کرد. ). در آخرین نسخه منتشر شده PHP، نوع داده void هم به این خروجی ها اضافه شد تا شباهت پی اچ پی به یک زبان سطح بالای مدرن، به بیشترین حد خود برسد.

 

 

function dump($objectModel): void
{
    var_dump($objectModel);
}

 

5- دسترسی به ثابت های کلاس

این ویژگی، دسترسی به ثابت های کلاس، شاید در نگاه اولیه، تغییر چشم گیری به نظر نرسد. اما گام بسیار بلندی است که توسعه دهندگان PHP برای ایجاد یک زبان برنامه شی گرای سطح بالا برداشته اند.

در برنامه نویسی بسیار پیش می آید که شما ثابت هایی در یک کلاس خاص تعریف می کنید و نمی خواهید که این ثابت ها از خارج کلاس قابل دسترسی باشند. تا قبل از این نسخه، نگارش کدی به شکل زیر ممکن نبود.

 

 

class Test
{
    protected const TEST = 'test';
}

 

6- کنترل خطای چندگانه ( multiple catching )

این ویژگی در اکثر زبان های شی گرای سطح بالا مانند c# یا جاوا، وجود داشته است که انعطاف بسیار زیادی را برای برنامه نویسان فراهم می کند. حال با اضافه شدن این ویژگی به PHP نسخه 7.1، این قابلیت و انعطاف پذیری برای کدنویسان این زبان نیز فراهم آمده است. امکان کنترل بیشتر بر روی خروجی کد، پیش بینی مقدار بازگشتی دقیق تر و انعطاف در نگارش کدها، از جمله ویژگی های جدیدی است که با این امکان برای برنامه نویسان PHP به ارمغان آمده است.

 

try {
    $test->testFunc($testParam);
} catch (Exception1 $ex) {
    ...
} catch (Exception2 $e) {
    ...
}

 

7- اجازه به کار بردن رشته در عملیات ریاضی را ندارید!

دیگر خبری از string در عملیات منطقی و ریاضی نیست! بله، با قوی تر شدن انقیاد داده ( data binding ) در PHP 7.1 دستوری مانند دستور زیر

var_dump("1" + "2  with a string");

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

 

در نسخه جدید PHP دیگر معتبر نیست و هشدار Notice: A non well formed numeric value encountered را در پی خواهد داشت.

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

 

 

این پست را به اشتراک بگذارید
نوشته شده توسط: بصیر پچاز
بصیر پچاز

مقالات و اخبار مرتبط

0 نظر

لطفاً نظر خود را درج کنید

پاسخ به پیام

بستن