د پی ایچ پی 8.3 پروګرام کولو ژبه خپرول

د یو کال پراختیا وروسته، د PHP 8.3 پروګرام کولو ژبه خوشې شوه. په نوې څانګه کې یو لړ نوي ځانګړتیاوې شاملې دي، په بیله بیا یو شمیر بدلونونه چې مطابقت ماتوي.

په PHP 8.3 کې کلیدي بدلونونه:

  • د ټولګي کلونینګ په جریان کې ، دا ممکنه ده چې ملکیتونه د "یوازې لوستلو" خاصیت سره بیا پیل کړئ. یوازې د لوستلو ملکیتونو ته د پورته کولو اجازه یوازې د "__کلون" فنکشن دننه اجازه ورکول کیږي: د لوستلو یوازې ټولګي پوسټ { عامه فعالیت __construct( عامه نیټه وخت $createdAt, ) {} عامه فعالیت __clone() { $this->createdAt = new DateTime(); // اجازه لري که څه هم "createdAt" ملکیت یوازې د لوستلو وړ دی. } }
  • په ټولګیو، ځانګړتیاوو او شمیرو کې د ډول نښې سره د ثابت کارولو وړتیا چمتو شوې ده: کلاس Foo { const string BAR = 'باز'؛ }
  • د "#[Override]" خاصیت لپاره ملاتړ اضافه شوی، د کوم سره چې پراختیا کونکی کولی شي ژباړونکي ته خبر ورکړي چې نښه شوې طریقه ځینې اصلي میتودونه پورته کوي. که چیرې هیڅ بدلون نه وي، ژباړونکی به یوه تېروتنه ښکاره کړي.
  • د سرې شاخص په توګه د منفي ارزښتونو اداره کول بدل شوي. د مثال په توګه، کله چې په خالي صف کې د "-5" شمیرې سره یو عنصر اضافه کړئ او بل عنصر اضافه کړئ، مخکې دویم عنصر د شاخص "0" سره خوندي شوی و، مګر د PHP 8.3 نسخه څخه پیل کول به د "-4" شاخص سره خوندي شي. . $array = []; $array[-5] = 'a'؛ $array[] = 'b'; var_export($array); // سري وه (-5 => 'a', 0 => 'b') // صفا شو (-5 => 'a', -4 => 'b')
  • یوازې د لوستلو په حالت کې د نامعلومو ټولګیو جوړولو وړتیا اضافه کړه: $class = new readonly class { public function __construct( public string $foo = 'bar', ) {}};
  • د json_validate() فنکشن اضافه شوی ترڅو ژر تر ژره وګوري چې ایا تار د کوډ کولو عملیاتو ترسره کولو پرته د JSON فارمیټ کې دی. json_validate(string $json, int $depth = 512, int $flags = 0): bool
  • د Randomizer ټولګي کې نوي میتودونه اضافه شوي، کوم چې د pseudo-random شمیرو او ترتیبونو رامینځته کولو لپاره د لوړې کچې API چمتو کوي: getBytesFromString د ورکړل شوي اندازې تار رامینځته کولو لپاره ، په تصادفي ترتیب کې کارول شوي حروف په بل تار کې شتون لري؛ getFloat او nextFloat د تصادفي فلوټینګ پوائنټ شمیره رامینځته کولو لپاره چې په ټاکل شوي حد کې راځي.
  • د متحرک کلاس نحو په کارولو سره د ثابتو ترلاسه کولو وړتیا اضافه کړه: کلاس Foo { const BAR = 'bar'؛ } $نوم = 'بار'; // مخکې، د بار ثابت بیرته ترلاسه کولو لپاره، تاسو باید مسلسل (Foo::class. '::' . $name); // اوس یوازې Foo::{$name};
  • د انفرادي استثنایی نسل اضافه کول (DateMalformedIntervalStringException, DateInvalidOperationException, DateRangeError) د ستونزو په صورت کې چې د نیټې او وخت سره کار کولو عملیاتو کې رامینځته کیږي.
  • د غلطیو ښه اداره کول چې په غیر سریالیز () فنکشن کې د سیریل شوي ډیټا پارس کولو پرمهال پیښیږي. د ستونزو په صورت کې، unserialize() اوس د E_NOTICE پر ځای E_WARNING صادروي.
  • د رینج () فعالیت کې بدلونونه رامینځته شوي. یو استثنا هغه وخت رامینځته کیږي کله چې په متغیرونو کې د شیانو ، سرچینو یا سرې تیرولو هڅه وکړئ چې د حد حدود تعریفوي ، په بیله بیا کله چې د $ ګام پیرامیټر کې منفي ارزښت یا په هر پیرامیټر کې نا تعریف شوی ارزښت مشخص کړي. د حروفونو لیست اوس تولید کیدی شي کله چې د شمیرو پرځای تارونه مشخص کړئ (د مثال په توګه، "رینج('5'، 'z')").
  • د جامد ملکیتونو سره د ځانګړتیاوو چلند بدل کړی، کوم چې اوس د مورني ټولګي څخه په میراث شوي جامد ملکیتونو باندې تیریږي.
  • د سټیک اوور فلو محافظت لپاره اضافه شوي تنظیمات. د zend.max_allowed_stack_size او zend.reserved_stack_size لارښوونې په ini فایل کې اضافه شوي، د اعظمي اجازه او خوندي سټک اندازه تعریفوي. برنامه به هغه وخت خرابه شي کله چې د سټیک ستړیا ته نږدې شي ، کله چې سټیک د zend.max_allowed_stack_size او zend.reserved_stack_size ترمنځ توپیر څخه ډیر ډک وي (عملیات به د قطع کولو غلطی کیدو دمخه ودریږي). په ډیفالټ ډول، د zend.max_allowed_stack_size ارزښت 0 ته ټاکل شوی (0 - اندازه په اوتومات ډول ټاکل کیږي؛ د محدودیت غیر فعالولو لپاره، تاسو کولی شئ دا -1 ته وټاکئ).
  • د POSIX نوي فنکشنونه posix_sysconf()، posix_pathconf()، posix_fpathconf() او posix_eaccess().
  • د mb_str_pad فنکشن اضافه شوی، کوم چې د str_pad() سټینګ فنکشن یو انالوګ دی، د ملټي بایټ کوډ کولو لکه UTF-8 سره کار کولو لپاره ډیزاین شوی.
  • تاسو ته اجازه درکوي له میتودونو څخه بندونه رامینځته کړئ او نومول شوي دلیلونه دې بندونو ته انتقال کړئ. $test = نوې ازموینه(); $ closure = $ test-> جادو(…); $closure(a: 'Hello', b: 'world');
  • بدل شوی چلند کله چې په انٹرفیسونو کې د ثابت لید لید اداره کول. انٹرفیس I { public const FOO = 'foo'; } ټولګي C I { شخصي کانسټ FOO = 'foo' پلي کوي؛ }
  • د array_sum()، array_product()، posix_getrlimit()، gc_status()، class_alias()، mysqli_poll()، array_pad() او proc_get_status() دندو ظرفیتونه پراخ شوي دي.
  • mb_strimwidth() ته د منفي $ widths ارزښت انتقالولو وړتیا له پامه غورځول شوې ده. د شمیر فارمټر::TYPE_CURRENCY ثابته لرې شوې. د دوه پیرامیټونو $host او $port سره د ldap_connect() فنکشن زنګ وهلو لپاره ملاتړ بند شوی. د opcache.consistency_checks ترتیب لیرې شوی دی.

سرچینه: opennet.ru

Add a comment