هل يمكننا تنفيذ وظيفة استخراج PHP في PHP مع Out باستخدام Zend API
-
20-09-2019 - |
سؤال
تستخرج وظيفة PHP المتغيرات إلى النطاق المحلي لوظيفة الاتصال. كيف يمكننا كتابة استخراج وظيفة PHP الخاصة بنا أيه الشيء نفسه؟
المحلول
لا أعتقد أنه يمكنك القيام بذلك في Pure-PhP: لا يمكن للدالة الوصول إلى متغيرات المتصل.
هذا يبدو وكأنه نوع من الأشياء التي ستحتاجها لكتابة امتداد C لتطويرها - سيكون لديك المزيد من التحكم في المتغيرات الداخلية لمتغيرات PHP هناك.
(وأنا لا أرى حقًا لماذا تحاول القيام بذلك: لماذا لا تستخدم فقط extract
وظيفة ؟ )
نصائح أخرى
حسنًا ، إذا كان الأمر يتعلق فقط بالمرح ، فمن الممكن:
<?php
$data=array('a' => 1, 'b' => 2);
foreach ($data as $name => $value) {
${$name} = $value;
}
echo $a;
?>
ولكن بعض المشكلات - مثل التعارض مع بيانات $ ، اسم $ وقيمة $ ولا يمكنك لفها في وظيفة. لكن ممكن.
نعم هذا ممكن،
السبب في أنني فعلت هذا لأنني بحاجة إلى شيء أكثر من دالة الاستخراج التي يجب أن تقطع القيم أيضًا
function extractArray($ar) {
if(count($ar)>=1) {
foreach($ar as $k=>$v) {
$GLOBALS[$k] = (is_array($v)?$v:trim($v));
}
}
}
أنا فقط أتعامل مع $ _get ، $ _post ، وأيضات أخرى مثل هذا على سبيل المثال $ _get ['username'] = 'JUSTNAJM' ؛ extractArray ($ _ get) ؛
ويمكنني الصدى فقط وسيطبع "Justnajm"