如果我尝试获取未定义变量的 sizeof 会发生什么? (PHP)

What happen if I try to get sizeof an undefined variable? (PHP)

(PHP) 如果我尝试使用 sizeof 方法获取未定义的变量大小会怎样?

喜欢:

<?
print_r(sizeof($undefined_variable));

我可以这样做吗? 价值是多少?

在我的操场上总是 运行 出错,但是当我尝试这个代码时:

<?
print_r(sizeof($undefined_variable));
exit();

我很好奇为什么我返回零值。抱歉我的英语不好

sizeofcount 的别名。 count() 只能 return 如果对象与 Countable 接口接口,而未定义的变量没有接口,这会导致错误。return 对象中的项目数。

但是输出 0 的原因是 print_r 每当发生错误时输出 0。

例如尝试:

print_r(4 + hello);

它仍然输出 0。错误不是致命的,所以程序继续执行。

要回答您的第二个问题,请尝试以下代码:

for ($i=0; $i<sizeof($undefined_variable); $i++) {
    echo $i;
}

echo "Hi";

只有'Hi'会得到输出。该错误中止了整个 for 循环。

sizeof()是一个数组函数returns数组的大小, 所以你会得到 php 关于变量(未声明)的警告,还有 结果为 0。

来自函数手册 - count():

Caution count() may return 0 for a variable that isn't set, but it may also return 0 for a variable that has been initialized with an empty array. Use isset() to test if a variable is set.

sizeof 是 count 的别名。

参见:http://php.net/manual/en/function.count.php

因此:

<?php
print_r(sizeof($undefined_variable));

将输出:

0

因为 sizeof($undefined_variable) 的计算结果为 0,而 print_r(0) 的结果为 0