PDA

View Full Version : سوال: کاربرد این کد



pars1376
دوشنبه 18 اسفند 1393, 10:27 صبح
سلام
میخواستم یکی این کد رو برام توضیح بده. هرکار کردم نفهمیدم




foreach ($_POST as $key => $value) {
$temp = is_array($value) ? $value : trim(value);

if ( empty($temp) && in_array($key,$required)) {
$missing[] = $key;
${$key} = '';
}
elseif (in_array($key, $expected)){
${$key} = $temp;


این کد:


$_POST as $key => $value

و


${$key} = $temp;

یعنی چی؟

ممنون میشم راهنماییم کنید

prans.info
دوشنبه 18 اسفند 1393, 12:39 عصر
کد شما برای به دست آوردن آرایه های دو بعدی و ریختن اون تویه یم متغیر هم نام اندیس اول هست .


$mahdi = array ('hi'=>'hello','w8'=>'wait');
foreach ($mahdi as $key => $value) {
echo $key . ' = ' .$value.'<br >';
}

فرض کنیم کدی مثل کد بالا داریم foreach میاد اندیس اول رو میزاره تویه متغیر $key و اندییس دوم رو میزاره تویه $value .
${$key} هم میاد یک متغییر با محتوای $key میسازه .
برای مثال اگر
$key = 'reza'; باشه میاد یک متغیر به اسم reza و با محتوای $temp میسازه ...
البته این کد شما میتونه باگ هم داشته باشه چون شاید اسم اندیس مثلا فارسی باشه یا با عدد شروع بشه یا کاراکتر های دیگه داشته باشه که برای تعریف متغیر مجاز نیستند .

pars1376
دوشنبه 18 اسفند 1393, 17:16 عصر
ببینید درست متوجه شدم.
تو php این یه آرایه 2 بعدی هست:


$mahdi = array ('hi'=>'hello','w8'=>'wait');


و طبق کد


$mahdi = array ('hi'=>'hello','w8'=>'wait');foreach ($mahdi as $key => $value) {echo $key . ' = ' .$value.'';}



خروجی میشه:
hi=hello w8=wail


فعلا مجبورم کد هارو اینجا - http://www.tutorialspoint.com/execute_php_online.php (http://www.tutorialspoint.com/execute_php_online.php)- امتحان کنم که وقتی این کد رو دادم پیغام متغیر تعریف نشده داد داد:


$mahdi = array ('hi'=>'hello','w8'=>'wait');
foreach ($mahdi as $key => $value) {
echo $key . ' = ' .$value.' ';
}

echo ${$key};
?>


هنوز

${$key}

رو متوجه نشدم. :ناراحت:

prans.info
دوشنبه 18 اسفند 1393, 17:25 عصر
آخر سر باید اینطوری کار کنید :


$mahdi = array ('hi'=>'hello','w8'=>'wait');

foreach ($mahdi as $key => $value) {

echo $key . ' = ' .$value.' ';

${$key} = $value;

}
echo $hi;
echo '<br />';
echo $w8;

prans.info
دوشنبه 18 اسفند 1393, 17:33 عصر
در واقع شما میتونید با روش ${$key} یک متغیر با اسم دینامیک بسازید :چشمک:


$name = 'salam';
${$name} = 'محتوا';
echo $salam;

pars1376
دوشنبه 18 اسفند 1393, 18:12 عصر
ممنون تقریبا فهمیدم
فک کنم یه نیم ساعتی دارم با این کد ور میرم و آزمایشش میکنم
اما ممنون میشم اگه بیشتر نوضیح بدبید که دیگه هیچ ابهامی برام نمونه.
مبنا رو بر این بذارید که من تقریبا هیچی از پی اچ پی نمیدونم

pars1376
چهارشنبه 20 اسفند 1393, 07:12 صبح
همچنین کاربرد تابع in_array() رو هم اگه بگید کاربردش چیه لطف کردید

hamedarian2009
چهارشنبه 20 اسفند 1393, 09:31 صبح
همچنین کاربرد تابع in_array() رو هم اگه بگید کاربردش چیه لطف کردید

این تابع بررسی میکنه مقداری که به عنوان پارامتر بهش دادی (اینجا key$) آیا در آرایه که پارامتر دومش هست (required$) وجود داره یا نه که اگه وجود داشته باشه مقدار True وگرنه False رو برمیگردونه