相关疑难解决方法(0)

PHP中的is_null($ x)vs $ x === null

可能重复:
is_null($ var)和($ var === null)之间有什么区别?

PHP有两个(我知道,如果算了三个isset())方法来确定一个值是否为null:is_null()=== null.我听说过,但没有证实,这=== null更快,但在代码审查中有人强烈建议我使用,is_null()因为它是专门为空评估目的而设计的.他也开始谈论数学或其他什么.

无论如何,is_null()显然较慢的事实也让我相信它做得更多=== null而且可能更受欢迎.有没有理由使用其中一个?总是首选吗?怎么样isset()

作为可能无法解决这个问题的附录,那么isset()对战is_null()呢?似乎所有人isset()都会压制通知,所以除非你真的想要一个未定义变量的通知,否则任何理由都可以使用is_null()?如果你知道变量当时被初始化了怎么样?

最后,是否有任何数学理由,更喜欢is_null()=== null?关于null无法比较的东西?

php isnull

129
推荐指数
6
解决办法
4万
查看次数

在PHP json_decode()中检测错误的json数据?

我正在尝试通过json_decode()解析时处理错误的json数据.我正在使用以下脚本:

if(!json_decode($_POST)) {
  echo "bad json data!";
  exit;
}
Run Code Online (Sandbox Code Playgroud)

如果$ _POST等于:

'{ bar: "baz" }'
Run Code Online (Sandbox Code Playgroud)

然后json_decode处理错误并且吐出"坏的json数据!"; 但是,如果我将$ _POST设置为"无效数据"之类的东西,它会给我:

Warning: json_decode() expects parameter 1 to be string, array given in C:\server\www\myserver.dev\public_html\rivrUI\public_home\index.php  on line 6
bad json data!
Run Code Online (Sandbox Code Playgroud)

我是否需要编写自定义脚本来检测有效的json数据,还是有其他一些很好的方法来检测它?

php json

47
推荐指数
5
解决办法
7万
查看次数

json_encode可以触发catch块吗?

这可能是一个非常简单的问题,但我找不到任何关于它的信息.

我使用的系统聚合了来自各种来源的大量数据,然后将这些数据存储在数据库中.在大多数情况下,系统工作正常,但偶尔我们会遇到一个问题,即数据可能有尴尬的字符编码(例如,当数据是另一种语言,如法语时),我们的系统不喜欢.

数据传递给我们的处理服务器(我们使用Gearman),并确保传递与源有关的所有信息,我们json_encode一个包含我们需要的所有内容的数组.我的问题是:如果我将json_encode包装在try/catch块中,会导致"PHP警告:json_encode():参数中的无效UTF-8序列"消息会触发catch块激活吗?

谢谢!

php json

4
推荐指数
1
解决办法
6773
查看次数

标签 统计

php ×3

json ×2

isnull ×1