Php 是否需要死亡;在响应api调用时打印json_encode()之后?
我正在创建各种“我的版本”的web服务。基本上,它是一个yii控制器,有很多动作。。每个动作如下Php 是否需要死亡;在响应api调用时打印json_encode()之后?,php,json,web-services,yii,die,Php,Json,Web Services,Yii,Die,我正在创建各种“我的版本”的web服务。基本上,它是一个yii控制器,有很多动作。。每个动作如下 public function actionNameOfWebService() { if(isset($_POST)) { // do some processing, when I have a result... I do .. print CJSON::encode('result.'); } else { print CJ
public function actionNameOfWebService()
{
if(isset($_POST))
{
// do some processing, when I have a result... I do ..
print CJSON::encode('result.');
}
else
{
print CJSON::encode('only post methods allowed');
}
}
许多这样的动作都在一个特定的控制器中。一切正常..在我开始生产之前,我需要添加一个'die;'每次打印CJSON::encode语句后的语句 您不必这样做,但当您添加它时,您将确保JSON之后不会打印任何内容,这将中断解析器读取该数据的尝试
但是,如果您知道没有更多内容,可以跳过它。您不必这样做,但是当您添加它时,您将确保JSON之后不会打印任何内容,这将中断解析器读取该数据的尝试
但是如果你知道没有更多的了,你可以跳过它。不。你不一定需要
死亡
或退出
。我认为使用它有点反模式。它破坏了封装
如果您有某种输出缓冲设置,
die
实际上可能不好。如果您代理一个请求,die
将终止整个过程等。类似的情况还有很多。不。您不一定需要die
或退出。我认为使用它有点反模式。它破坏了封装
如果您有某种输出缓冲设置,die
实际上可能不好。如果您代理一个请求,die
将终止整个过程等。有更多类似的场景。由于您使用的是Yii,您只需使用:
Yii::app()->end();
既然您使用的是Yii,您只需使用:
Yii::app()->end();
你绝对应该使用Yii::app()->end()代码>这是因为如果您有任何调试输出或分析输出,除非您告诉应用程序完成,否则这些输出也将包含在响应中。如果未包含此项,验证可能会中断。您肯定应该使用Yii::app()->end()代码>这是因为如果您有任何调试输出或分析输出,除非您告诉应用程序完成,否则这些输出也将包含在响应中。如果未包含此内容,则验证可能会中断。仅当您知道脚本不应在当前行之后继续时才使用die()
。您应该使用Yii::app()->end()代码>仅当您知道脚本不应在当前行之后继续时才使用die()
。您应使用Yii::app()->end()你说的输出缓冲是什么意思?输出缓冲是PHP的一个特性,我想投票支持。。但是我没有力量!我选择下面的答案作为答案,因为他回答了我真正怀疑的问题。。但是谢谢你的输出缓冲位。。我会读更多关于它的内容。你说的输出缓冲是什么意思?输出缓冲是PHP的一个特性,我想投票支持。。但是我没有力量!我选择下面的答案作为答案,因为他回答了我真正怀疑的问题。。但是谢谢你的输出缓冲位。。我会读更多关于它的书,所以我有一种直觉,没有什么比这更重要了。但我认为这更像是一种预防措施。在任何打印之后,CJSON::encode方法。。我知道应该没有更多。。。这可能是因为我偶然错过了检查条件的机会,而过程仍在继续,因此,正如您提到的破坏接收端的解析器。。所以我在想,如果加上骰子会有帮助的话。所以我有一种直觉,觉得没什么了。但我认为这更像是一种预防措施。在任何打印之后,CJSON::encode方法。。我知道应该没有更多。。。这可能是因为我偶然错过了检查条件的机会,而过程仍在继续,因此,正如您提到的破坏接收端的解析器。。所以我在想如果加上骰子会有帮助。