ترقي جي هڪ سال کان پوء پروگرامنگ ٻولي ڇڏڻ . نئين شاخ ۾ نئين خاصيتن جو هڪ سلسلو شامل آهي، انهي سان گڏ ڪيتريون ئي تبديليون جيڪي مطابقت کي ٽوڙيندا آهن.
کيل PHP 7.4 ۾:
- - طبقاتي ملڪيتن ۾ ھاڻي شامل ٿي سگھي ٿو قسم جا بيان، مثال طور:
ڪلاس استعمال ڪندڙ {
عوامي int $id؛
عوامي اسٽرنگ $name؛
} - فعل جي وضاحت لاءِ نحو "fn(parameter_list) => expr" قدر جي لحاظ سان اسڪوپ بائنڊنگ سان. مثال طور، "fn($x) => $x + $y" جي برابر آهي "$fn2 = فنڪشن ($x) استعمال ($y) {واپسي $x + $y؛}")؛
- "؟؟=" جيڪو ڊفالٽ قدر جي وضاحت ڪرڻ لاءِ استعمال ڪري سگھجي ٿو ("a ??= b" "a = a ?? b" سان ملندڙ جلندڙ آهي، جيڪڏهن "a" جي وضاحت ڪئي وڃي ته ان جي قيمت محفوظ ڪئي ويندي آهي، ۽ جيڪڏهن وضاحت نه ڪئي وئي آهي. مقرر ڪيل قدر "b")؛
- محدود حاصل ڪيل واپسي جي قسمن ۾ قسمن جي وراثت واري درجه بندي کي محفوظ ڪرڻ، يا حاصل ڪيل دليلن جي قسمن ۾ اصل قسمن جي درجه بندي کي ريورس ڪرڻ جي صلاحيت ( واپسي جو قسم ۽ دليل جو قسم تضاد). هيٺيون تعميرات هاڻي PHP ۾ استعمال ڪري سگھجن ٿيون:
ڪلاس A {}
ڪلاس B وڌائي ٿو A {}ڪلاس پروڊيوسر {
عوامي ڪم جو طريقو(): A {}
}
ڪلاس چائلڊ پروڊيوسر پروڊيوسر کي وڌايو {
عوامي ڪم جو طريقو(): B {}
} - صفن اندر آپريٽر کي پيڪنگ ڪرڻ “…$var”، موجوده صفن جي متبادل کي انجام ڏيو جڏهن نئين صف جي وضاحت ڪريو؛
$parts = ['apple'، 'pear']؛
$fruits = ['ڪيلا'، 'نارنگي'، …$ حصا، 'تربوز']؛
// ['ڪيلا'، 'نارنگي'، 'سيب'، 'پيئر'، 'تربوز']؛ - انگن اکرن جي حدن سان وڏي انگن جي بصري نمائندگي (1_000_000_00)؛
- حمايت ، جيڪو توهان کي ڪنهن شئي جو حوالو برقرار رکڻ جي اجازت ڏئي ٿو، پر گندي جمع ڪندڙ کي لاڳاپيل اعتراض کي حذف ڪرڻ کان روڪي نه ٿو؛
- نئين آبجیکٹ سيريلائيزيشن (Serializable ۽ __sleep()/__wakeup() جو هڪ مجموعو)، جيڪو تبديل ڪيو سيريلائيبل انٽرفيس، جنهن کي ختم ڪيو ويندو؛
// ھڪڙي صف کي موٽائي ٿو جنھن ۾ اعتراض جي سڀني رياستن تي مشتمل آھي؛
عوامي فنڪشن __serialize(): array؛// هڪ صف مان هڪ اعتراض جي حالت کي بحال ڪري ٿو
عوامي فنڪشن __unserialize(array $data): void؛ - ھڪڙي طريقي کان استثناء کي اڇلائڻ جي اجازت ڏني وئي ;
- شامل ڪيل سپورٽ اعتراض ڪوڊ ڪيش کي اڳ لوڊ ڪرڻ لاء. سيٽنگ لاءِ شامل ڪيل پيٽرول
، جنهن جي ذريعي توهان هڪ PHP اسڪرپٽ بيان ڪري سگهو ٿا جيڪو مرتب ڪيو ويندو ۽ هلندو جڏهن سرور شروع ٿيندو. هي اسڪرپٽ ٻين فائلن جو اوپي ڪوڊ لوڊ ڪري سگهي ٿو انهن جي سڌي شموليت ذريعي يا استعمال ڪندي opcache_compile_file() فنڪشن؛ - شامل ڪيو ويو crc32c فنڪشن کي Hash ايڪسٽينشن ۾ چيڪسم کي ڳڻڻ لاءِ Castagnoli polynomial استعمال ڪندي؛
- شامل ڪيل سپورٽ پاسورڊ_hash() فنڪشن لاءِ پاسورڊ هيشنگ طريقن argon2i ۽ argin2id، سوڊيم لائبريري جي عمل ۾، جيڪڏهن PHP بغير ليبارگن جي ٺهيل آهي؛
- شامل ڪيو ويو فنڪشن mb_str_split()، ساڳيو str_split()، پر ڪم بائيٽ سان نه پر ملٽي بائيٽ اسٽرنگ ۾ ڪردار جي پوزيشن سان؛
- strip_tags() فنڪشن هاڻي ٽيگ نالن سان هڪ صف کي پاس ڪرڻ جي صلاحيت رکي ٿو، يعني. بجاءِ strip_tags($str, ' ') توهان هاڻي وضاحت ڪري سگهو ٿا strip_tags($str, ['a', 'p']);
- proc_open() هلائڻ لاءِ اسٽرنگ جي بجاءِ آپرينڊز کي هڪ صف ۾ درج ٿيڻ جي اجازت ڏئي ٿو، ۽ ٿلهي فائل جي وضاحت ڪندڙ لاءِ ٿريڊ ريڊائريڪشن ۽ سپورٽ پڻ مهيا ڪري ٿي؛
proc_open(['php', '-r', 'echo "Hello World\n";'], $descriptors, $pipes);
// شيل ۾ 2> ۽ 1 وانگر
proc_open($cmd, [1 => ['پائپ', 'w'], 2 => ['redirect', 1]], $pipes);// پسند ڪريو 2>/dev/null يا 2>nul شيل ۾
proc_open($cmd, [1 => ['پائپ', 'w'], 2 => ['null']], $pipes); - Firebird/Interbase، Recode ۽ WDDX ايڪسٽينشنز کي بنيادي ورهائڻ کان خارج ڪيو ويو آھي. اهي واڌايون هاڻي PECL ذريعي ورهايون ويون آهن؛
- ڪيٽيگري ۾ منتقل ڪيو ويو خاصيتون جهڙوڪ nested ternary آپريٽرز بغير قوس جي، پهچڻ وارين عناصرن ۽ تارن تائين پهچندڙ ڪنگڻ (“$var{$idx}”) استعمال ڪندي، is_real() فنڪشن ۽ حقيقي ڏانهن ڪاسٽ ڪرڻ، پيرن ڪلاس کان سواءِ والدين ڪي ورڊ استعمال ڪندي، پيرا ميٽر اجازت_url_include ترتيب استعمال ڪندي array_key_exists() شين تي.
فنڪشن get_magic_quotes_gpc(), get_magic_quotes_runtime(), ۽
hebrevc(), convert_cyr_string(), money_format(), ezmlm_hash(), restore_include_path(), ldap_control_paged_result_response(), ldap_control_paged_result(), ReflectionType::__toString().هڪ غير معمولي خصوصيت جي استعمال بابت خبردار ڪيو ويو آهي جڏهن افعال ۾ غلط علامتن کي پروسيس ڪرڻ جي ڪوشش ڪئي وئي آهي
base_convert()، bindec()، octdec() ۽ hexdec()، ۽ جڏهن mb_ereg_replace() ۾ غير اسٽرنگ جو نمونو بيان ڪيو وڃي.
جو ذريعو: opennet.ru
