Php 为什么strcasecmp使用数组和字符串返回true?

Php 为什么strcasecmp使用数组和字符串返回true?,php,Php,为什么strcasecmp使用数组和字符串返回true?strcasecmp()要求参数为字符串。如果任一参数不是字符串,则返回NULLNULL是错误的,所以!如果您像这样启用了错误报告,则strcasecmp(array(),“abc”)返回TRUE if(!strcasecmp(array(), "abc")) { echo "ok"; } 您的代码不正常,strcasecmp使用两个字符串作为参数!看:这不是一个我们真的喜欢看到的问题。你

为什么strcasecmp使用数组和字符串返回true?

strcasecmp()
要求参数为字符串。如果任一参数不是字符串,则返回
NULL
NULL
是错误的,所以
!如果您像这样启用了错误报告,则strcasecmp(array(),“abc”)
返回
TRUE

if(!strcasecmp(array(), "abc"))
{
     echo "ok";
}

您的代码不正常,
strcasecmp
使用两个字符串作为参数!看:这不是一个我们真的喜欢看到的问题。你应该做的第一件事就是查阅手册。查找它所花的时间比写一篇文章所花的时间要少。如果你仍然有问题,那么寻找重复的-也许有人有类似的问题。如果没有,那么你可以在这里发布。你可以检查代码是否有效。因为我已经检查了手册,但没有写在上面,我想知道是否有人问了类似的问题,但没有找到。所以我问是否有人知道为什么。但我用!所以任何正数都返回false。您询问的是
strcasecmp()
返回的是什么,而不是
返回的是什么!strcasecmp()
返回。
<?php
// Enable FULL Error Reporting on the screen
// ONLY USE IN DEVELOPMENT
error_reporting(E_ALL);
ini_set('display_errors', 1);

if(!strcasecmp(array(), "abc"))
{
    echo "ok";
}