با تاخیر خیلی زیاد بلاخره اینو گفتم بنویسم که موضوعم ناقص نمونه.
در پست PHP در راه انتشار – قسمت اول درباره یکسری از مهمترین تغیرات نسخه هفتم PHP گفتم و حالا میخوام بقیشونو بگم.
تعریف ثابت آرایه ای با استفاده از define
در نسخه ۵.۶ این امکان اضافه شده بود که از طریق const یک ثابت با مقدار آرایه ای تعریف کنیم. ولی یک مشکل اساسی داشت و ان هم این بود که شما نمیتونستید از متغیر های مقدار دهی شده برای مقدار دهی ثابت استفاده کرد. یکم توضیحش سخته. اجازه بدید نشون بدم.
مثلا به دستورات زیر دقت کنید. توی این دستورات خط دوم ارور میده.
<?php $variable = 3; const X = array(1,2,$variable,4); // Fatal error: Constant expression contains invalid operations in <...> on line 3 ?>
ولی اگه من جایی نیاز داشته باشم تا با استفاده از یک متغیر یک ثابت رو مقدار دهی کنم پس باید چیکار کنم؟ خب اینجاست که define با تغیرات نسخه ۷ به کمکمون میاد.
خب خیلی راحت همینکار رو با define میکنیم و هیچ اروری هم دریافت نمیکنیم.
<?php $variable = 3; define('X',array(1,2,$variable,4)); ?>
استفاده گروهی از namespace ها
خب برای اینم باز مثال ببینیم بهتره.
مثلا کد زیر برای دوران قبل از PHP7 بود:
<?php use some\namespace\ClassA; use some\namespace\ClassB; use some\namespace\ClassC as C;
همین کد بعد از دوران پیدایش نسخه ۷ام به این شکل میشه:
<?php use some\namespace\{ClassA, ClassB, ClassC as C};
تابع intdiv 
این تابه دوتا پارامتر به عنوان ورودی میگیره و بخش صحیح حاصل تقسیم پارامتر اول به دوم رو برمیگردونه.
اینکه این تابع رو خودمون تعریف کنیم کار خیلی راحتی هست ولی خب گذاشتن دیگه…
<?php var_dump(intdiv(10, 3)); // int(3)
پارامتر session_start
احتمال خیلی زیاد با session_start آشنا هستید. ولی خب این تابع هیچ پارامتری دریافت نمیکرد؛ البته تا نسخه هفتم. حالا به عنوان پارامتر اختیاری میتونه آرایهای از تنظیماتی که قبل از این باید از php.ini تغیرشون میدادیم بگیره.
<?php session_start([ 'cookie_lifetime' => 86400, 'session.name' => 'COOKIE_NAME' 'read_and_close' => true, ]);
کلاس IntlChar
ّIntlChar یک کلاس از پیش تعریف شدست که داخل پر از ثابت ها و متود هایی هست که مربوط به بررسی و جمع آوری یکسری از اطلاعات مربوط به کاراکتر ها است.
تعدا ثابت ها و متود های داخل این کلاس به قدری زیاده که حتی تصور اینکه اینجا بررسیشون کنم ترسناکه. پس اگر میخواید دربارش بخونید برید به صفحه خود IntlChar داخل مستندات PHP .
خب اینطور که مشخصه به یک قسمت سومی یا حتی شاید چهارمی هم نیاز پیدا کنیم. اینبار دیگه قول نمیدم ولی سعی میکنم تا اونهارو هم اضافه کنم.