Experience Zone

Share Experience With Respect To FreeBSD/Debian/Ubuntu/PHP/C#

วันนี้มาดูเทคนิคการใช้งานตัวแปรของ php กันหน่อยนะครับ เพราะว่า php สามารถที่จะนำค่าของตัวแปรตัวหนึ่ง มาใช้เป็นชื่อให้กับ ตัวแปรอีกตัวหนึ่งได้ มาลองดูตัวอย่างการใช้งานกันหน่อยดีกว่า อาจจะมีประโยชน์บ้างก็ได้ หรือจะรู้ไว้เฉยๆ ก็ไม่น่าจะเสียหายอะไร

ตัวอย่าง

1
2
3
4
5
6
7
8
9
10
<?php
 
$test1 = "new_value";
 
$new_value = "New Value";
 
print $new_value."<br>"; // เรียกใช้ตัวแปรแบบปกติ
print $$test1."<br>"; // เรียกใช้ตัวแปรโดยใช้ค่าจากตัวแปรชื่อ $test1 มาเป็นชื่อของตัวแปร
 
?>

หมายเหตุ เราไม่สามารถอ้างชื่อตัวแปร แบบ $new$test1 แบบนี้ไม่ได้นะครับเช่น

1
2
3
4
5
6
7
8
9
<?php
 
$test1 = "value";
$new_value = "New Value";
 
print $new$test1;
// แบบนี้ใช้ไม่ได้นะครับ เราจะต้องกำหนดให้ $test1 = "new_value" เท่านั้นและเวลาเรียกใช้ก็จะต้องเรียก โดยใช้ $$test1 เท่านั้น
 
?>

ต่อไปมาดูตัวอย่างการใช้งานจริงๆ ดีกว่าว่าเราจะสามารถเอามาใช้งานตรงไหนได้บ้าง

test1.php

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
<html>
<head>
<title>Untitled Document</title>
<meta http-equiv="Content-Type" content="text/html; charset=windows-874">
</head>
 
<body>
<form name="form1" method="post" action="test2.php">
<?php
for($i=0;$i<10;$i++){
  // ทำการวนลูปสร้าง input ขึ้นมา 10 อัน
  print "<input type='text' name='textfield".$i."'><br>";
}
?>
  <input type="submit" name="Submit" value="Submit">
</form>
</body>
</html>

test2.php

1
2
3
4
5
6
7
8
9
<?php
 
for($i=0;$i<10;$i++){
   // ทำการวนลูปเพื่อแสดงค่าของ input ที่รับเข้ามา
   $fieldname = "textfield".$i;
   print $$fieldname."<br>";
}
 
?>

แนะนำ
แต่วิธีการที่แนะนำมา อาจจะดูไม่ค่อยสวยเท่าไร ทางที่ดีผมว่าเราใช้ตัวแปรแบบ array จะดีกว่า ลองมาดูตัวอย่างการใช้งานตัวแปรแบบ array กันบ้างดีกว่า

test1.php

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
<html>
<head>
<title>Untitled Document</title>
<meta http-equiv="Content-Type" content="text/html; charset=windows-874">
</head>
 
<body>
<form name="form1" method="post" action="test2.php">
<?php
for($i=0;$i<10;$i++){
  // ทำการวนลูปสร้าง input ขึ้นมา 10 อัน
  print "<input type='text' name='textfield[]'><br>";
}
?>
  <input type="submit" name="Submit" value="Submit">
</form>
</body>
</html>

test2.php

1
2
3
4
5
6
7
8
<?php
 
for($i=0;$i<10;$i++){
   // ทำการวนลูปเพื่อแสดงค่าของ input ที่รับเข้ามา
   print $textfield[$i]."<br>";
}
 
?>

จะเห็นว่าการใช้ตัวแปรแบบ array สามารถใช้งานได้ง่ายกว่าแบบแรกมาก อันนี้ก็ขึ้นอยู่กับว่าเวลาไหน เหมาะที่จะใช้ตัวแปรแบบไหนนะครับ เลือกวิธีการและวิธีแก้ปัญหาให้เหมาะสมกับงานนะครับ

Add A Comment


 Enter this code