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

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

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

  • کله چې ټولګیو کلون کول، اوس دا ممکنه ده چې د "یوازې لوستلو" ځانګړتیا سره ملکیتونه بیا پیل کړئ. د یوازې لوستلو ملکیتونو له سره تنظیم کول یوازې د "__clone" فعالیت دننه اجازه لري: یوازې لوستلو کلاس پوسټ { عامه فعالیت __construct( عامه نیټه وخت $createdAt, ) {} عامه فعالیت __clone() { $this->createdAt = new نیټه وخت (); // اجازه ورکړل شوې، که څه هم "createdAt" ملکیت یوازې لوستلو وړ دی. } }
  • په ټولګیو، ځانګړتیاوو او شمېرنو کې د ډول مشخصاتو سره د ثابتو کارولو وړتیا اوس شتون لري: class Foo { const string BAR = 'baz'; }
  • د "#[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 ټولګي ته نوي میتودونه اضافه شوي دي، کوم چې د جعلي-ناڅاپي شمیرو او ترتیبونو د تولید لپاره د لوړې کچې API چمتو کوي: getBytesFromString، د ورکړل شوي اندازې د تار د تولید لپاره چې په تصادفي ډول د بل تار څخه حروف غوره کوي؛ او getFloat او nextFloat، د یوې ټاکل شوې رینج دننه د تصادفي فلوټینګ نقطې شمیرې د تولید لپاره.
  • د متحرک ټولګي ترکیب په کارولو سره د ثابتو استخراج کولو وړتیا اضافه شوې: class Foo { const BAR = 'bar'; } $name = 'BAR'; // پخوا، د BAR ثابت استخراج کولو لپاره، تاسو باید constant(Foo::class . '::' . $name) ته زنګ ووهئ؛ // اوس تاسو یوازې د Foo::{$name} مشخص کولو ته اړتیا لرئ؛
  • د نیټو او وختونو سره په عملیاتو کې د ستونزو په صورت کې د جلا استثناوو (DateMalformedIntervalStringException، DateInvalidOperationException، DateRangeError) نسل اضافه شوی.
  • د unserialize() فعالیت کې د سریال شوي معلوماتو د تجزیې پرمهال د رامنځته شویو غلطیو ښه اداره کول. که ستونزې رامنځته شي، نو unserialize() اوس د E_NOTICE پرځای د E_WARNING کوډ بیرته راګرځوي.
  • د range() فعالیت کې بدلونونه راغلي دي. اوس یو استثنا هغه وخت اچول کیږي کله چې د متغیرونو کې د شیانو، سرچینو، یا صفونو د تیریدو هڅه کیږي چې د range حدود تعریفوي، او همدارنګه کله چې په $step پیرامیټر کې منفي ارزښت یا په کوم پیرامیټر کې یو نا تعریف شوی ارزښت مشخص کوي. د حروفونو لیست اوس هغه وخت تولید کیږي کله چې د شمیرو پرځای تارونه مشخص کیږي (د مثال په توګه، "range('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 = new Test(); $closure = $test->magic(…); $closure(a: 'hello', b: 'world');
  • په انٹرفیسونو کې د ثابتو لیدونو اداره کولو پر مهال چلند بدل شو. انٹرفیس I { public const FOO = 'foo'; } ټولګي C پلي کوي I { private const FOO = 'foo'; }
  • د array_sum()، array_product()، posix_getrlimit()، gc_status()، class_alias()، mysqli_poll()، array_pad() او proc_get_status() د دندو وړتیاوې پراخې شوې دي.
  • د $widths منفي ارزښت mb_strimwidth() ته د لیږدولو وړتیا له منځه وړل شوې ده. د NumberFormatter::TYPE_CURRENCY ثابت لرې شوی دی. د ldap_connect() زنګ وهلو لپاره ملاتړ د دوو پیرامیټرو، $host او $port سره بند شوی دی. د opcache.consistency_checks ترتیب لرې شوی دی.

سرچینه: opennet.ru

د DDoS محافظت ، VPS VDS سرورونو سره د سایټونو لپاره معتبر کوربه توب واخلئ 🔥 د DDoS محافظت، VPS VDS سرورونو سره د باور وړ ویب پاڼې کوربه توب واخلئ | ProHoster