PDA

View Full Version : اگه بخواهیم همچین متغیری داشته باشیم، باید چی کار کنیم!



Aftabgardan-cc
جمعه 31 شهریور 1385, 08:25 صبح
سلام؛

اولا شرمنده که سئوالاتم زیاده...

ببینید، فرض کنید توی یک فرم، دوازده تا "چک‌باکس" داریم که قراره مثلا تعدادیش تیک بخوره و بره صفحه بعد...

حالا در صفحه بعد، می‌خواهیم ببنیم کدوم‌ها چک خوردن، هر کدوم رو بریزیم توی یک متغیر، من این کار رو انجام دادم، اما با دوازده بار نوشتن حلقه if که به نظرم غیر معقول می‌یاد!

من می‌خوام از این حلقه استفاده کنم:

for ($i=1;$i<13;$i++){
if (isset ($_REQUEST("C".$i.""){
$C$i = $_REQUET("C".$i."");
}
}
اما موقع اجرا، از C$i$ ایراد می‌گیره :(
چطور می‌تونم همچین متغیری داشته باشم؟
اصلا امکان داره؟
حتی اگه آندرلاین هم بینشون بذارم، بازم ایراد می‌گیره!

$C_$i

Ernesto
جمعه 31 شهریور 1385, 10:03 صبح
این کاری که می خوای کنی بهش می گن : Variable variables

http://us2.php.net/language.variables.variable

فکر نمی کنم توضیح بیشتری بخواد .

oxygenws
جمعه 31 شهریور 1385, 10:05 صبح
اما موقع اجرا، از C$i$ ایراد می‌گیره :
معلومه گیر میده!!! این رو از کجا آوردی؟!!!‌:)

۱- جلوی REQUEST باید آکولاد بذاری، پرانتز اشتباست.
۲- می تونی از eval استفاده کنی (راهنمای PHP رو بخون.)
۳- می تونی از ارسال متغیر ها (بین صفحه HTML و PHP) به صورت آرایه استفاده کنی (راهنمای PHP رو بخون)
۴- می تونی از متغیر های متغیری استفاده کنی!!! همون هایی که دو تا علامت $$ میذاریم. (از هم به راهنمای PHP مراجعه کن)

خوش باشی.

oxygenws
جمعه 31 شهریور 1385, 10:10 صبح
مور چهارمی که من نوشتم با مورد ارنستو یکی است :) (من داشتم تایپ می کردم که جواب دادی :دی)
کدت رو نسبتا کثیف نوشتی.... شرمنده....


for ($i=1; $i<13; $i++){
$var = 'C' . $i;
if (isset($_REQUEST[$var])){
$$var = $_REQUEST[$var];
}
}

اَرژنگ
جمعه 31 شهریور 1385, 10:18 صبح
$id = 2;
$cube_2 = "Test";

echo ${cube_.$id};

// will output: Test

http://www.php.net/manual/en/language.variables.php

houtanal
جمعه 31 شهریور 1385, 13:51 عصر
$addquery=mysql_query("SELECT * FROM `sections`");
while($addar=mysql_fetch_array($addquery)){

if(isset($_POST[$addar[0]."_add"]) and !empty($_POST[$addar[0]."_add"])){
array_push($addarray,$addar[0]);
}
}

Aftabgardan-cc
جمعه 31 شهریور 1385, 14:27 عصر
ـــــــلام؛

آقایون مجددا ممنون،
خیلی عالی بود، مشکل رفع شد...

oxygenwsجان،
اون آکولاد REQUET رو چون اینجا تایپ کردم،‌ اشتباه شده، توی کدهای پروژه‌ مشکلی نبود، چون همه‌ش از روی یه کد درست، Copy و Paste می‌کنم :لبخند:
به هر حال، ممنون...

(آقا تا چند تا سئوال در روز مجازه؟ من کلی سئوال و مشکل دارم:لبخند: اما قول می‌دم اگه بیفتم رو ریل، بشم بیل گیتس(!):لبخند: )