آموزش کار با تابع ()extract در PHP
تابع ()extract در PHP مقادیر آرایه را می گیرد و آن ها را در متغیرهایی با همان اسم یا اندیس می گذارد .
دستور استفاده از تابع ()extract در PHP
extract($array, $extract_type, $prefix)
شرح کاربرد تابع ()extract در PHP
()extract در PHP متغیرهایی را از آرایه مورد نظر به داخل symbol table ( یک data structure که برای ذخیره کردن اطلاعات توکنها در ترجمه/کامپایل بکار میرود.) جاری وارد می کند. این تابع یک متغیر از جنس آرایه ی متناظر ($array) را گرفته و با کلید المان های آرایه به مثابه ی اسم متغیر برخورد کرده و مقادیر متناظر آن را به منزله ی محتوای متغیر درنظر می گیرد. تابع نام برده به ازای هر جفت کلید/مقدار در آرایه، بر اساس مقدار دو پارامتر extract_type و prefix، یک متغیر در symbol table کنونی ایجاد می نماید.
به عبارت دیگر این تابع مقادیر آرایه را گرفته و آن ها را در متغیرهایی با همان اسم یا اندیس (شماره ی مکان قرارگیری) قرار می دهد.
پارامترهای ارسالی به تابع
شمارهپارامتر مربوطه و شرح کاربرد
1array(پارامتر الزامی)
متغیری از جنس آرایه ی متناظر (associative) که المان های آن استخراج شده و در symbol table وارد می شود.
متغیری از جنس آرایه ی متناظر (associative) که المان های آن استخراج شده و در symbol table وارد می شود.
2 extract_type(پارامتر اختیاری)
تابع extract() اسم متغیرها را از لحاظ صحیح بودن و نیز جهت اطمینان از عدم تداخل با اسم دیگر متغیرهای جاری بررسی می کند. پارامتر extract_type نحوه ی برخورد با اسم های غیرمجاز یا اسم هایی که قبلا به متغیرهای جاری تخصیص یافته را مشخص می نماید. مقادیر ممکن به شرح زیر می باشند:
تابع extract() اسم متغیرها را از لحاظ صحیح بودن و نیز جهت اطمینان از عدم تداخل با اسم دیگر متغیرهای جاری بررسی می کند. پارامتر extract_type نحوه ی برخورد با اسم های غیرمجاز یا اسم هایی که قبلا به متغیرهای جاری تخصیص یافته را مشخص می نماید. مقادیر ممکن به شرح زیر می باشند:
- EXTR_OVERWRITE – Default – این مقدار سبب می شود که در صورت وجود هم نامی بین متغیرها، متغیر (از قبل) موجود بازنویسی (overwrite) شود.
- EXTR_SKIP – چنانچه اسم متغیر با متغیر از قبل موجود در حافظه یکی باشد، متغیر موجود بازنویسی نمی شود.
- EXTR_PREFIX_SAME – در صورت وجود هم نامی بین متغیرها، به اسم متغیر از قبل موجود در حافظه یک پیشوند اضافه می شود.
- EXTR_PREFIX_ALL – به اسم تمامی متغیرها یک پیشوند الصاق می شود.
- EXTR_PREFIX_INVALID – این مقدار سبب می شود فقط به اسم متغیرهایی که با عدد نام گذاری شده یا کلا غیر مجاز می باشند، یک پیشوند الحاق گردد.
- EXTR_IF_EXISTS – این مقدار به تابع اعلان می کند که تنها متغیرهای از قبل موجود در symbol table جاری را بازنویسی کند و در غیر این صورت هیچ اقدام خاصی صورت ندهد.
- EXTR_PREFIX_IF_EXISTS – این مقدار به تابع دستور می دهد که تنها باید به اسم آن دسته از متغیرهایی که از قبل در symbol table جاری موجود هستند یک پیشوند الصاق نماید.
- EXTR_REFS – آدرس متغیرهایی که در آرایه هستند را استخراج کرده و در symbol table جاری جایگذاری کند. در این صورت متغیرهای وارد شده در symbol table از آرایه به مقادیر پارامتر آرایه (المان های متغیر $array) اشاره می کنند.
3prefix(پارامتر اختیاری)
If EXTR_PREFIX_SAME, EXTR_PREFIX_ALL, EXTR_PREFIX_INVALID or EXTR_PREFIX_IF_EXISTS are used in the extract_rules parameter, a specified prefix is required.
چنانچه هر یک از مقادیر EXTR_PREFIX_SAME، EXTR_PREFIX_ALL، EXTR_PREFIX_INVALID یا EXTR_PREFIX_IF_EXISTS به پارامتر extract_rules ارسال شوند، لازم است یک پیشوند مشخص شده و به عنوان مقدار به پارامتر مربوطه ارسال شود.
این پارامتر پیشوندی که به ابتدای اسم متغیر الصاق می شود را مشخص می نماید. پیشوند همیشه توسط کاراکتر زیرخط از کلید المان آرایه جدا می شود.
If EXTR_PREFIX_SAME, EXTR_PREFIX_ALL, EXTR_PREFIX_INVALID or EXTR_PREFIX_IF_EXISTS are used in the extract_rules parameter, a specified prefix is required.
چنانچه هر یک از مقادیر EXTR_PREFIX_SAME، EXTR_PREFIX_ALL، EXTR_PREFIX_INVALID یا EXTR_PREFIX_IF_EXISTS به پارامتر extract_rules ارسال شوند، لازم است یک پیشوند مشخص شده و به عنوان مقدار به پارامتر مربوطه ارسال شود.
این پارامتر پیشوندی که به ابتدای اسم متغیر الصاق می شود را مشخص می نماید. پیشوند همیشه توسط کاراکتر زیرخط از کلید المان آرایه جدا می شود.