استخراج (extract)
تابع extract در PHP مقادیر آرایه را به «متغیر (Variable)» تبدیل می کند. کلیدها نام متغیر می شوند و مقدارها داخلشان می روند. مثل برچسب زدن جعبه ها و خالی کردنشان روی میز.
extract چه می کند؟
extract(array, extract_rules, prefix) نام متغیرها را از کلیدهای آرایه می سازد. سپس مقدارها را به همان متغیرها می دهد. خروجی، تعداد متغیرهای ساخته شده است.
مثال ساده: تبدیل کلیدها به متغیر
<?php
$a = "Original";
$my_array = array("a" => "Cat", "b" => "Dog", "c" => "Horse");
extract($my_array);
echo "\$a = $a; \$b = $b; \$c = $c";
?>
قوانین برخورد (extract_rules)
گاهی نام متغیر نامعتبر است یا تکراری می شود. پس با قوانین زیر رفتار کنیم:
EXTR_OVERWRITE: پیش فرض؛ متغیر قبلی را می نویسد.EXTR_SKIP: متغیر قبلی را حفظ می کند.EXTR_PREFIX_SAME: در تکرار، پیشوند می گذارد.EXTR_PREFIX_ALL: برای همه، پیشوند می گذارد.EXTR_PREFIX_INVALID: فقط نام های نامعتبر را پیشونددار می کند.EXTR_IF_EXISTS: فقط متغیرهای موجود را می نویسد.EXTR_PREFIX_IF_EXISTS: اگر همان نام موجود بود، پیشوند می گذارد.EXTR_REFS: به صورت «ارجاع (Reference)» استخراج می کند.
مثال با پیشوند: جلوگیری از تداخل
<?php
$a = "Original";
$my_array = array("a" => "Cat", "b" => "Dog", "c" => "Horse");
extract($my_array, EXTR_PREFIX_SAME, "dup");
echo "\$a = $a; \$b = $b; \$c = $c; \$dup_a = $dup_a";
?>
گام های امن برای استفاده
- کلیدهای آرایه را بررسی کن.
- قانون مناسب را انتخاب کن.
- در پروژه های واقعی، پیشوند بگذار.
هشدار: استفاده بی دقت از تابع extract می تواند متغیرهای مهم را بازنویسی کند.
تابع های مرتبط
برای ساخت آرایه از متغیرها از compact() کمک بگیر. برای پیمایش مثال ها، بخش current() و end() را هم ببین.
جمع بندی سریع
- تابع extract کلیدها را به نام متغیر تبدیل می کند.
- خروجی، تعداد متغیرهای ساخته شده است.
- برای تداخل نام، از قوانین پیشوند استفاده کن.
- در کدهای حساس، محتاط باش و پیشوند بگذار.