我遇到一个函数的问题,它从第一个if()语句返回数据而不是函数中的辅助if()语句,请参阅下面的内容。
function training($type,$tid)
{
if($type = "id") {
$query = mysql_query("SELECT * FROM trainroster WHERE DATE = CURDATE()");
if (mysql_num_rows($query) == 1) {
$array = mysql_fetch_array($query);
$id=$array['TID'];
}
else { $id = "1"; }
return $id;
}
else if($type = "topic"){
$query = mysql_query("SELECT * FROM trainroster WHERE TID='$tid'");
$array = mysql_fetch_array($query);
$topic = $array['TOPIC'];
return $topic;
}
}
这是这样称呼的:
$training = $connection->training("topic",$row['TID']);
当调用该函数时,它返回$ id而不是$ topic,即使我将$ type变量设置为“topic”。
任何帮助都非常感谢,欢呼!
答案 0 :(得分:1)
使用'=='代替'='进行比较
'='是一个赋值运算符,如果用它进行比较,它将始终返回true。这就是你永远得到身份的原因。
if($type == "id") {
....
if($type == "topic"){
....
答案 1 :(得分:0)
看看你的if语句:
if($type = "id")
if($type = "topic")
你要分配,而不是比较。他们应该是:
if($type == "id")
if($type == "topic")
答案 2 :(得分:0)
if($type = "id")
将字符串“id”分配给$ type并返回“id”,这是真的。
正如Harish Singh所说,你必须写if($type == "id")
。
防止此错误的一种方法是编写if("id" == $type)
,如果您忘记了一个“=”,则会导致错误。