Я нашел вопрос в php7.3.4.
if ( count( '' ) == 1 )
{
echo 1;
} else {
echo 2;
}
Эта программа выводит 1. Затем я проверил исходный код на наличие функции «счет».
PHP_FUNCTION(count)
{
....
switch (Z_TYPE_P(array)) {
case IS_NULL:
php_error_docref(NULL, E_WARNING, "Parameter must be an array or an object that implements Countable");
RETURN_LONG(0);
break;
case IS_ARRAY:
...
break;
case IS_OBJECT:
....
break;
default:
php_error_docref(NULL, E_WARNING, "Parameter must be an array or an object
that implements Countable");
RETURN_LONG(1);
break;
}
Это легко произвести BUG.
Я думаю, что count('') может быть ошибка вывода или 0 лучше, чем 1 и предупреждение.
О чем вы думаете?
А count(NULL) не равно count(''), как-то странно.
Я понимаю, что вы говорите, НО МОЙ вопрос: возможно, count ('') выводит ошибку или 0 лучше, чем 1 и предупреждение.
Это не вопрос. Это предложение, которое, если вас действительно беспокоит, должно быть адресовано сообществу, разрабатывающему PHP здесь, а не Stack Overflow. (Я предполагаю, что смысл 1 — «один из того, что вы передали», то есть «одна строка».) У строк уже есть несколько других способов сообщить вам свою длину, вам не нужно использовать count.
Спасибо за помощь. Я собираюсь передать это предложение сообществу: D
В PHP счет в основном используется для расчета array количества/длины. Если вы хотите найти длину строки, используйте strlen() вместо count(). Пожалуйста, перейдите по этой ссылке.(w3schools.com/php/showphp.asp?filename=demo_func_string_strlen).
И добавил один пункт, count() должен возвращать «1», если строка также доступна, даже пустая. Потому что это калькулятор подсчета массивов. Если вы используете count(null), он возвращает 0. В этом месте нуль означает «ничего». Но пустая строка считается строкой длины 0.






null!==''- это разные типы данных. Это не синонимы