function sum_data($t,$static_name){
//$re=mysql_query("select * from tbl_type2 order by id ASC") or die(mysql_error());
$re=mysql_query("select * from $t order by id ASC") or die(mysql_error());
$sum_type2="|";
while($rs=mysql_fetch_array($re)){
//$t_type2="type2".$rs[0];
$t_type2=$static_name.$rs[0];
if(isset(${$t_type2}))
$sum_type2.=${$t_type2}."|";
}
return $sum_type2;
}
echo sum_data("tbl_type2","type2");
ผลที่ได้มา เป็น |
แต่ผลที่ผมต้องคือ id ที่เลือก เช่น |1|3| เพื่อนำไปเก็บ
ไม่ ผมไม่เข้าใจตรงใหน ของการส่งค่า เข้า function หรือป่าว
function sum_data($t,$static_name){
//$re=mysql_query("select * from tbl_type2 order by id ASC") or die(mysql_error());
$re=mysql_query("select * from $t order by id ASC") or die(mysql_error());
$sum_type2="|";
while($rs=mysql_fetch_array($re)){
//$t_type2="type2".$rs[0];
$t_type2=$static_name.$rs[0];
if(isset(${$t_type2}))
$sum_type2.="|" . ${$t_type2};
}
return substr(1,$sum_type2);
}
if(isset(${$t_type2})) ตรงนี้คิดว่าไม่มีตัวแปรประกาศแน่นอนครับเพราะ
เมื่ออยู่ใน function จะไม่สามารถเข้าถึงตัวแปร global ครับ
ถ้าจะทำอาจจะต้องเช็ก if(isset($GLOBALS[$t_type2])) แทนอาจจะได้ครับ
$re=mysql_query("select * from tbl_type2 order by id ASC") or die(mysql_error());
$sum_type2="|";
while($rs=mysql_fetch_array($re)){
$t_type2="type2".$rs[0];
if(isset(${$t_type2}))
$sum_type2.=${$t_type2}."|";
}
echo $sum_type2;
ถ้าพูดถึงตัวแปรแล้วไม่ควรจะใช้ตัวแปร global ใน function ไหนๆ ครับ
โดยเฉพาะอย่างยิ่งถ้ามีแก้ไขตัวแปร global ใน function นั้นด้วยยิ่งไม่ควรทำครับ
นอกจากเป็นคำสั่งที่จำเป็นมากๆ ก็อาจจะละเว้นได้บ้าง
แต่ควรจะจำกัดการสร้าง function นี้ให้น้อยที่สุดครับ เพราะจะทำให้ตรวจสอบโปรแกรมได้ยากครับ
สำหรับตัวแปร global สามารถใช้ใน function ได้โดยใช้คำสั่ง
function foo(){
global $type22;
echo $type22;
}
แต่ถ้าใช้ตัวแปร $_GET ซึ่ง global โดยอัตโนมัติแล้วก็ไม่ต้องใช้ครับ
function foo(){
echo $_GET['type22'];
}