Kecha php ning yangi versiyasi ofisial chiqarildi. Uning bir nechta muxim o’zgarishlari bor
class User { public int $id; public string $name; }
Endi xususiyat (property) larda ham ma’lumot turini ko’rsatishimiz mumkin. Bu eng muxim o’zgarish. Ushbu o’zgarishni bir necha yillardan beri kutardik. Endi PHP da to’laqonli turlashgan dasturlar yozishimiz mumkin!
$factor = 10; $nums = array_map(fn($n) => $n * $factor, [1, 2, 3, 4]); // $nums = array(10, 20, 30, 40);
Strelkalik funksiyalar imkoni paydo bo’ldi. Endi bir qatorlik funksiyalarni qisqa yozish imkonimiz bor
class A {} class B extends A {} class Producer { public function method(): A {} } class ChildProducer extends Producer { public function method(): B {} }
Endi yuqoridagi kod ham ishlaydi
$array['key'] ??= computeDefault(); // quyidagi kod bilan bir if (!isset($array['key'])) { $array['key'] = computeDefault(); }
Lekin to’g’risini aytsam PHP dasturchilari so’roq belgisi bilan ishlashni sal oshirib yuborishdi. Endi, ayniqsa boshlovchi dasturchilar oson chalkashishlari mumkin. Barcha tillarda a ? b : c;
ko’rinishidagi ifodalar bor. PHP da esa undan tashqari, endi ?:
??
??=
kabi ifodalar ham paydo bo’ldi.
$parts = ['apple', 'pear']; $fruits = ['banana', 'orange', ...$parts, 'watermelon']; // ['banana', 'orange', 'apple', 'pear', 'watermelon'];
Bu juda qulay o’zgarishlardan biri. Bundan ko’p foydalansam kerak. Ya’ni endi bir ko’plik (array) ichida boshqa ko’plikni ochishingiz mumkin
6.674_083e-11; // kasr son 299_792_458; // o'nlik sanoq tizimidagi raqam 0xCAFE_F00D; // 16 lik sanoq tizimida 0b0101_1111; // ikkilik raqam
Endi raqamlar orasida past chiziq belgisi bo’lishi mumkin. To’g’risi bu qay vaziyatlarda bizga as qotishini bilmayman.
Shahsan men uchun xususiyatlar turlarinig ko’rsatish imkoniyati va bir ko’plik ichida ikkinchisini ochish imkoniyati eng muxim o’zgarishlar xisoblanadi.
Assalomu alaykum ustoz. Men Umumiy dasturlash teoreyasi ni oʻrgandim va unda koʻrsatilgan kammandalarni hammasini php da qilib koʻrdim, oʻxshadi. Endi men phpni neccha %ni oʻrgandim deb oʻylaysiz