PHP 8.1 در حال حاضر در حال توسعه است و تا پایان سال 2021 منتشر خواهد شد.

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

تغییرات سینتکسی و تابعی

علامت گذاری عددی هشتم صریح

PHP از سیستم های مختلف عددی پشتیبانی می کند ، از جمله دهدهی پیش فرض (پایه -10) ، باینری (پایه -2) ، اکتال (پایه -8) و هگز (پایه -16).

سیستم های عددی جدا از اعشار با پیشوند خود پیشوند می شوند:

در PHP 8.1 به بعد ، اعداد Octal نیز از 0o پشتیبانی می کنند. (صفر و به دنبال آن o همانند Oscar) پیشوند، که به معنای واقعی کلمات عددی هشت ضلعی است ، می تواند واضح تر و خواناتر شود که در واقع اعداد هشت عددی است. 0O (صفر و به دنبال آن حروف بزرگ مانند Oscar) نیز پشتیبانی می شود.

در بسیاری از زبانهای برنامه نویسی از 0 پیشوند برای حروف الفبا عددی هشتگانه استفاده می شود ، دقیقاً مانند PHP. با این حال ، بسیاری از زبانها از صریح نماد 0o نیز پشتیبانی می کنند و 0o را توصیه کرده اند.

echo 0xff; // 255
echo 0b111; // 7
echo 77; // 77
echo 077; // 63
echo 0o77; // 63, In PHP 8.1
echo 0O77; // 63, In PHP 8.1

077 === 63; // true
077 === 0o77; // true
077 === 0O77; // true

علاوه بر این ، جدا کننده های عددی خط زیر در حروف الفبا عددی پیشوند 0o / 0O نیز پشتیبانی می شوند:

echo 0o7716_1412; // 16573194

پیشوند 0 تغییر نمی کند

پیشوند 0 موجود منسوخ نشده است و عملکرد آن دقیقاً به همان شکل ادامه دارد.

پیشوندهای 0o / 0O علاوه بر پیشوند 0 موجود پشتیبانی می شوند.

هیچ تغییری در رشته های عددی وجود ندارد

رشته های عددی ، یعنی رشته هایی که حاوی یک عدد هستند ، تحت تأثیر این تغییر قرار نمی گیرند. "0o16" (به عنوان یک رشته) به عنوان یک عدد تفسیر نمی شود ، و برای is_numeric نیز true بر نمی گردد.

echo "016"; // "016"
is_numeric("0o77"); // false
is_numeric("0b11"); // false
is_numeric("0x16"); // false

توجه داشته باشید که "016" برای is_numericمقدارtrue است و تغییر نمی کند:

تأثیر سازگاری به عقب

پیشوندهای 0o و 0O پیشوندهای جدیدی هستند که در نسخه های قدیمی PHP پشتیبانی نمی شدند. تلاش برای استفاده از آنها در نسخه های قدیمی PHP منجر به خطای نحوی می شود:

$value = 0o77;

Parse error: syntax error, unexpected identifier "o77" in ... on line ...

 

 

 

دیدگاهتان را بنویسید

نشانی ایمیل شما منتشر نخواهد شد.