محمد ملکی
محمد ملکی
خواندن ۱ دقیقه·۳ سال پیش

قابلیت جدید PHP 8.1 - آرایه unpack


قبلا در php 7.4 ، قابلیت unpack وجود داشت اما فقط برای آرایه لیست هایی با کلید ساده و عددی عمل می‌کرد اما در نسخه جدید این قابلیت اضافه شده که شامل همه آرایه ها میشود .

حالا این قابلیت کجا کاربرد دارد؟

برای ترکیب آرایه ها باهم درست مثل جاوااسکریپت از ... قبل از مقدار ها استفاده میکنیم ؛ اما در نسخه ۷.۴ برای ترکیب آرایه های رشته ای باید از تابع array_merge استفاده میشد ، حال با این نسخه جدید این قابلیت بدون خطا قابل دسترس هست.

بررسی همراه با مثال

قبل از نسخه ۸.۱

<?php $array = [0 => 'lorem',1=>'ipsum']; $array2 = [0 => 'amet']; $arrayMerged = [...$array,...$array2]; var_dump($arrayMerged); // [0 => 'lorem',1 => 'ipsum' , 3 => 'amet']; $array1 = ['x' => 'y']; $array2 = ['z' => 't']; $arrayMerged = [...$array1,...$array2]; var_dump($arrayMerged);// Fatal error: Cannot unpack array with string keys in ... on line ...

در نسخه 8.1

<?php $array = [0 => 'lorem',1=>'ipsum']; $array2 = [0 => 'amet']; $arrayMerged = [...$array,...$array2]; var_dump($arrayMerged); // [0 => 'lorem',1 => 'ipsum' , 3 => 'amet']; $array1 = ['x' => 'y']; $array2 = ['z' => 't']; $arrayMerged = [...$array1,...$array2]; var_dump($arrayMerged); //No Fatal error here :)

این خطا دیگه وجود نداره !

پس در نتیجه تا قبل نسخه 8.1 ، برای ترکیب آرایه های رشته ای می بایست از تابع array_merge استفاده میشد ولی حال با چند نقطه ساده این عمل انجام می شود همچون جاوااسکریپت . :)

بررسی تابع array_is_list

<?php $list = [&quota&quot, &quotb&quot, &quotc&quot]; array_is_list($list); // true $notAList = [1 => &quota&quot, 2 => &quotb&quot, 3 => &quotc&quot]; array_is_list($notAList); // false $alsoNotAList = [&quota&quot => &quota&quot, &quotb&quot => &quotb&quot, &quotc&quot => &quotc&quot]; array_is_list($alsoNotAList); // false

همینطور که قابل مشاهده این تابع به صورت بولین هر لیستی که کلید ندارد را true و هر لیستی که به صورت رشته یا عدد هست را با خروجی false نمایش میدهد.


phpپی اچ پیunpackآرایه
توسعه دهنده بک اند
شاید از این پست‌ها خوشتان بیاید