Php yiiajax响应正确语法

Php yiiajax响应正确语法,php,syntax,yii,response,Php,Syntax,Yii,Response,我对YII中的AJAX请求有操作: public function actionSomeCheck() { if($_GET['foo'] == 'bar') { echo CJSON::encode(array('status'=>'ok')); } echo CJSON::encode(array('status'=>'error')); } 我需要在生成响应后添加刹车,但没有找到正确的语法 它可以是: public funct

我对YII中的AJAX请求有操作:

public function actionSomeCheck()
{
    if($_GET['foo'] == 'bar')
    {
        echo CJSON::encode(array('status'=>'ok'));
    }

    echo CJSON::encode(array('status'=>'error'));
}
我需要在生成响应后添加刹车,但没有找到正确的语法

它可以是:

public function actionSomeCheck()
{
    if($_GET['foo'] == 'bar')
    {
        echo CJSON::encode(array('status'=>'ok'));
        die();// Or exit
    }

    echo CJSON::encode(array('status'=>'error'));
    die();
}
或:

或者在最后一次应答后没有任何中断

可能使用死亡/退出会更快地返回响应,但可以阻止某些操作


这不是生死攸关的问题,但我想理解正确的语法,因为我会经常使用它。

使用开关盒

public function actionSomeCheck()
{
$data = $_GET['foo'];
switch($data)
         {
             case 'bar':
                 echo CJSON::encode(array('status'=>'ok'));
             break;
             default:
                 echo CJSON::encode(array('status'=>'error'));
             break;

         }
}

或者您可以添加更多案例。

终止Yii申请的正确方法是:

Yii::app()->end()

这将在调用
exit()
本身之前处理任何
onEndRequest
事件

见:

补充澄清:

不需要调用
Yii::app()->end自己。该方法所做的只是处理
onEndRequest
事件,然后调用
exit()

而当您使用
run()
正常运行应用程序时,您会看到在应用程序正常终止之前,默认情况下会处理
onEndRequest
事件


请参阅:

谢谢您的回答,但这只是一个简单的示例。在实际中,代码可以在不同的地方进行多次检查。@Narek我给出了最简单的形式,因为您没有提到多次检查。。在这种情况下,您可以使用
Yii::app()->end()这是我搜索的内容。谢谢只有一个澄清。我是否需要在最后一次回复后添加它,或者Yii将自动添加?@Narek我已经用要求的澄清更新了我的答案。感谢您提供完整的答案。注意:添加结束声明是Yii的正常方式。但是,目前,如果打开了web日志记录,可能会导致问题。在这种情况下,有时候让人死在那里实际上更好:-)
public function actionSomeCheck()
{
$data = $_GET['foo'];
switch($data)
         {
             case 'bar':
                 echo CJSON::encode(array('status'=>'ok'));
             break;
             default:
                 echo CJSON::encode(array('status'=>'error'));
             break;

         }
}