我想知道这个剧本里发生了什么?有什么不同?

时间:2011-01-28 10:05:40

标签: php codeigniter

在CodeIgniter中

 $confirm=$this->video->videoupdate(any values);// Here i am just updating my database
 if($confirm)
 echo "<script>window.location='index';</script>";


 $this->video->videoupdate(any values);// Here i am just updating my database
 echo "<script>window.location='index';</script>";

你可以解释我的细节......

是否必须检查这种情况?

3 个答案:

答案 0 :(得分:6)

在第一个示例中,您将设置一个变量$confirm,根据更新是否成功然后重定向,我认为它将是truefalse。在第二个示例中,无论更新是否成功,您都将重定向。

答案 1 :(得分:0)

如果记录成功更新,则在第一种情况下进行脚本重定向。

在第二种情况下,它总是会重定向的记录发生什么并不重要。

答案 2 :(得分:0)

// example 1
$confirm=$this->video->videoupdate('any values');
if($confirm)
{
    echo "window.location='index';";
}

// example 2
$this->video->videoupdate('any values');
echo "window.location='index';";

您的videoupdate方法将返回一个值。通常您会返回truefalse,但也可以返回数据。在示例1中,您将语句的结果分配给$confirm

如果$confirmtrue,则执行条件。请注意,除非$ confirm明确设置为false,否则任何值都将评估为true,因此条件将始终为真。

更好的选择是:

if($confirm==true) 
{ 
    // redirect
}
else
{
   // something else has happened
} 

此逻辑可用于控制应用程序在错误结果中的流量,例如,或查询失败。

在第二个示例中,echo语句将发生,无论结果如何,但可能会导致意外行为 - 在脚本中,查询是否成功。