Почему strcasecmp возвращает true с массивом и строкой? - PullRequest
0 голосов
/ 13 июля 2020
if(!strcasecmp(array(), "abc"))
{
     echo "ok";
}

Почему strcasecmp возвращает true с массивом и строкой?

Ответы [ 2 ]

0 голосов
/ 13 июля 2020

Если у вас включен отчет об ошибках, вот так ...

<?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";
}

Вы получите ...

Предупреждение: strcasecmp () ожидает, что параметр 1 будет строкой, массив, указанный в home / phptutorials / public_html / index. php в строке 7

ok

0 голосов
/ 13 июля 2020

strcasecmp() требует, чтобы аргументы были строками. Если любой из аргументов не является строкой, возвращается NULL. NULL ложно, поэтому !strcasecmp(array(), "abc") возвращает TRUE.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...