类型与类型声明的区别及PHP false单例类型返回值疑问
类型与类型声明的区别
- 类型:是PHP中数据值本身的固有属性,用来定义值的种类,比如
bool(布尔型)、int(整型)、string(字符串型)等,每个具体的值都归属于某一种确定的类型。 - 类型声明:是开发者在代码中添加的约束规则,用于限定函数参数、返回值或类属性的类型范围,属于代码层面的类型校验机制,帮助PHP检查传入/返回的值是否符合预期。
PHP单例类型
false/true的疑问解答 PHP的false和true属于单例类型,但它们仅作为类型声明的约束使用,并非独立的新值类型,本质是bool类型的子类型限定。
针对你给出的代码:
function myFunction(): false { return 1 < 0; } $result = myFunction(); var_dump($result);
返回bool(false)的原因如下:
- 函数的返回类型声明
: false只是约束该函数必须返回布尔值false,而非要求返回一个全新的“false类型”值。 1 < 0的运算结果本身就是布尔类型的false,var_dump会输出值的实际类型和内容,因此显示bool(false)。
需要明确的关键点:
- PHP不存在
false(false)或singleton(false)这类输出形式,因为单例类型false/true仅用于类型校验:如果函数返回了true或其他非false的值,PHP会直接抛出类型错误,违反声明约束。 - 你无法创建“false类型”的变量,比如
$var: false = false;这种写法不合法,单例类型只能用于函数参数、返回值或类属性的类型声明中,用来限定值必须是某个具体的单例(如false、true,或特定字符串、数字)。
内容的提问来源于stack exchange,提问作者Redgard
相关产品推荐
相关产品推荐

