เอาค่าจากตัวแปลใน function ยังไงอ่ะ

เริ่มโดย hurahura, 14 กรกฎาคม 2007, 01:10:48

หัวข้อก่อนหน้า - หัวข้อถัดไป

0 สมาชิก และ 1 ผู้มาเยือน กำลังดูหัวข้อนี้

hurahura

<?
function myfunction($ver){
   if ($ver == 1) { $a=5;   $b=6;   $c=9;   $d=4;   $e=1;   $f=6;   $g=2;   $h=1; }
   if ($ver == 2) { $a=1;   $b=4;   $c=2;   $d=8;   $e=7;   $f=7;   $g=3;   $h=8; }
   if ($ver == 3) { $a=8;   $b=1;   $c=1;   $d=5;   $e=6;   $f=7;   $g=4;   $h=3; }
}
echo "$a $b $c $d";
?>

แบบนี้ ค่าไม่ออกเพราะว่า มันเป็นตัวแปลใน function

คือถ้าคิดแบบยากๆมันก็มีหลายวิธีอยู่ อย่างเช่น เอาค่า $a-$h มารวมกันเป็น array แล้ว return ค่า array นั้นออกมาแล้ว แล้วก็มาแยก array นั้นทีละตัวใส่ตัวแปร แล้วค่อยเอาไปใช้ แต่ผมว่ามันน่าจะมีวิธีง่ายกว่านั้น เลยมาลองถามดู

Pipo

อ้างถึงจาก: hurahura ใน 14 กรกฎาคม 2007, 01:10:48
<?
function myfunction($ver){
   if ($ver == 1) { $a=5;   $b=6;   $c=9;   $d=4;   $e=1;   $f=6;   $g=2;   $h=1; }
   if ($ver == 2) { $a=1;   $b=4;   $c=2;   $d=8;   $e=7;   $f=7;   $g=3;   $h=8; }
   if ($ver == 3) { $a=8;   $b=1;   $c=1;   $d=5;   $e=6;   $f=7;   $g=4;   $h=3; }
}
echo "$a $b $c $d";
?>

แบบนี้ ค่าไม่ออกเพราะว่า มันเป็นตัวแปลใน function

คือถ้าคิดแบบยากๆมันก็มีหลายวิธีอยู่ อย่างเช่น เอาค่า $a-$h มารวมกันเป็น array แล้ว return ค่า array นั้นออกมาแล้ว แล้วก็มาแยก array นั้นทีละตัวใส่ตัวแปร แล้วค่อยเอาไปใช้ แต่ผมว่ามันน่าจะมีวิธีง่ายกว่านั้น เลยมาลองถามดู


<?

myfunction(2);
echo "$a $b $c $d";

function myfunction($ver){
   global $a,$b,$c,$d;
   if ($ver == 1) { $a=5;   $b=6;   $c=9;   $d=4;   $e=1;   $f=6;   $g=2;   $h=1; }
   if ($ver == 2) { $a=1;   $b=4;   $c=2;   $d=8;   $e=7;   $f=7;   $g=3;   $h=8; }
   if ($ver == 3) { $a=8;   $b=1;   $c=1;   $d=5;   $e=6;   $f=7;   $g=4;   $h=3; }
}

?>

thaiseodev

อ้างถึงจาก: Pipo ใน 14 กรกฎาคม 2007, 02:48:35
อ้างถึงจาก: hurahura ใน 14 กรกฎาคม 2007, 01:10:48
<?
function myfunction($ver){
   if ($ver == 1) { $a=5;   $b=6;   $c=9;   $d=4;   $e=1;   $f=6;   $g=2;   $h=1; }
   if ($ver == 2) { $a=1;   $b=4;   $c=2;   $d=8;   $e=7;   $f=7;   $g=3;   $h=8; }
   if ($ver == 3) { $a=8;   $b=1;   $c=1;   $d=5;   $e=6;   $f=7;   $g=4;   $h=3; }
}
echo "$a $b $c $d";
?>

แบบนี้ ค่าไม่ออกเพราะว่า มันเป็นตัวแปลใน function

คือถ้าคิดแบบยากๆมันก็มีหลายวิธีอยู่ อย่างเช่น เอาค่า $a-$h มารวมกันเป็น array แล้ว return ค่า array นั้นออกมาแล้ว แล้วก็มาแยก array นั้นทีละตัวใส่ตัวแปร แล้วค่อยเอาไปใช้ แต่ผมว่ามันน่าจะมีวิธีง่ายกว่านั้น เลยมาลองถามดู


<?

myfunction(2);
echo "$a $b $c $d";

function myfunction($ver){
   global $a,$b,$c,$d;
   if ($ver == 1) { $a=5;   $b=6;   $c=9;   $d=4;   $e=1;   $f=6;   $g=2;   $h=1; }
   if ($ver == 2) { $a=1;   $b=4;   $c=2;   $d=8;   $e=7;   $f=7;   $g=3;   $h=8; }
   if ($ver == 3) { $a=8;   $b=1;   $c=1;   $d=5;   $e=6;   $f=7;   $g=4;   $h=3; }
}

?>

WORK SMART :)

hurahura

ขอบคุณมากครับ  :)

ดีนะที่มาถามก่อน ไม่งั้นคงเขียนแบบยาวๆ ไปโดยไม่จำเป็น

okgofun

ลองเก็บเป็น array ไว้ก็ได้นะครับ เผือเอาไว้ใช้ประโยชน์อื่นๆสำหรับค่าของตัวแปรนั้นๆ

function myfunction($ver){
   $arr = array() ;
   if ($ver == 1) {
       $arr['a']=5;   $arr['b']=6;   $arr['c']=9;   $arr['d']=4;   $arr['e']=1;
      /* ค่าอื่นๆเก็บลง array ไปเรื่อยๆ */
   }
   if ($ver == 2) {
       $arr['a']=1;   $arr['b']=4;   $arr['c']=2;   $arr['d']=8;   $arr['e']=7;   $arr['f']=7;   
       /* ตัวแปรอื่นๆ */
   }
   if ($ver == 3) {
        $arr['a']=8;   $arr['b']=1;   $arr['c']=1;   $arr['d']=5;   $arr['e']=6;   $arr['f']=7;   $arr ['g']=4;   $arr['h']=3; // อันนี้เขียนให้ครบแหะๆ
   }

    return $arr ; // ส่งค่าออก

} // end functon

$myvars = myfunction($ver) ;

echo $myvars['a'] ; // อันนี้แสดงค่า a
echo $myvars['b'] ; // ค่า b

ประมาณนี้นะครับ
จะต้องทำให้ได้เดือนละอย่างต่ำ $1,000 แล้วก็ไม่โดนแบน

kengz


hurahura

อ้างถึงจาก: kengz ใน 14 กรกฎาคม 2007, 15:46:09
ว่าแต่ function นี้ ทำไว้ทำไมอ่ะ

ก็ไว้ส่งค่าไป 1 ตัว แต่คืนค่ามาเป็นชุด
จะได้ไม่ต้องไปแก้ทีละตัว

Tee++;

อ้างถึงจาก: hurahura ใน 14 กรกฎาคม 2007, 01:10:48
<?
function myfunction($ver){
   if ($ver == 1) { $a=5;   $b=6;   $c=9;   $d=4;   $e=1;   $f=6;   $g=2;   $h=1; }
   if ($ver == 2) { $a=1;   $b=4;   $c=2;   $d=8;   $e=7;   $f=7;   $g=3;   $h=8; }
   if ($ver == 3) { $a=8;   $b=1;   $c=1;   $d=5;   $e=6;   $f=7;   $g=4;   $h=3; }
}
echo "$a $b $c $d";
?>

แบบนี้ ค่าไม่ออกเพราะว่า มันเป็นตัวแปลใน function

คือถ้าคิดแบบยากๆมันก็มีหลายวิธีอยู่ อย่างเช่น เอาค่า $a-$h มารวมกันเป็น array แล้ว return ค่า array นั้นออกมาแล้ว แล้วก็มาแยก array นั้นทีละตัวใส่ตัวแปร แล้วค่อยเอาไปใช้ แต่ผมว่ามันน่าจะมีวิธีง่ายกว่านั้น เลยมาลองถามดู


function myfunction($ver){
$ar[1] = array('1', 2', '3');
$ar[2] = array('4', 5', '6');
return $ar[$ver];
}
[direct=http://laravel.in.th]Laravel in Thai[/direct]
[direct=http://jquerytips.com]jQueryTips by Tee++;[/direct]
[direct=https://www.facebook.com/jQueryTips]jQueryTips Page[/direct]
[direct=https://www.facebook.com/Laravel.in.th]Laravel in Thai Page[/direct]
[direct=https://twitter.com/Teepluss]Teepluss's Twitter[/direct]


kengz

ยังงั้นส่งกลับมาเป็น array เลยครับ
ซึ่ง array ของ php ใช้ string ชี้ index แทนตัวเลขได้ (จริง ๆ มันคือ hash)

เช่น
function getConfig($var)
{
   switch($var)
   {
      case 1:
         $config['a'] = 1;
         $config['b'] = 2;
         $config['c'] = 3;
         break;
      case 2:
         $config['a'] = 4;
         $config['b'] = 5;
         $config['c'] = 6;
         break;
   }
   return $config;
}

เวลาเรียกใช้ก็
$config = getConfig(1);
$a = $config['a']; หรืออะไร ก็ว่าไป

หรือหากต้องการใส่ตัวแปร a b c d จริง ๆ ละก็
นี่เลย

list($a,$b,$c,$d,$e,$f,$g,$h) = myfunction();
echo "$a,$b,$c,$d,$e,$f,$g,$h";
function myfunction($ver){
   if ($ver == 1) { return array(5,6,9,4,1,6,2,1); }
   if ($ver == 2) { return array(1,4,2,8,7,7,3,8); }
   if ($ver == 3) { return array(8,1,1,5,6,7,4,3); }
}

Despeckle

อ้างถึงจาก: kengz ใน 15 กรกฎาคม 2007, 01:45:19
list($a,$b,$c,$d,$e,$f,$g,$h) = myfunction(1);
echo "$a,$b,$c,$d,$e,$f,$g,$h";

function myfunction($ver) {
   if ($ver == 1) { return array(5,6,9,4,1,6,2,1); }
   if ($ver == 2) { return array(1,4,2,8,7,7,3,8); }
   if ($ver == 3) { return array(8,1,1,5,6,7,4,3); }
}

แบบนี้แหละครับสั้นและทำงานเร็วสุด

ColdMoney

อ้างถึงจาก: Despeckle ใน 15 กรกฎาคม 2007, 01:57:34
อ้างถึงจาก: kengz ใน 15 กรกฎาคม 2007, 01:45:19
list($a,$b,$c,$d,$e,$f,$g,$h) = myfunction(1);
echo "$a,$b,$c,$d,$e,$f,$g,$h";

function myfunction($ver) {
   if ($ver == 1) { return array(5,6,9,4,1,6,2,1); }
   if ($ver == 2) { return array(1,4,2,8,7,7,3,8); }
   if ($ver == 3) { return array(8,1,1,5,6,7,4,3); }
}

แบบนี้แหละครับสั้นและทำงานเร็วสุด

ผมก็ชอบแบบนี้ครับ  :)


[direct=https://www.jumnong.com]รับจำนอง[/direct] [direct=https://burapasup.com]รับซื้อบ้าน[/direct] [direct=https://kadsan.com]สินค้าราคาถูก[/direct] [direct=https://checkcheap.com]เปรียบเทียบราคา[/direct]