介绍
理解PHP中的真值和假值对于在条件语句和表达式中做出明智的决策至关重要。本指南将详细介绍PHP如何确定不同值的真值或假值。
Truthy和Falsy值是什么?
在PHP中,一个值被认为是可取的(truthy)如果它能够被评估为真。TRUE在布尔上下文中,为假值。FALSE所有值都是真值,除了几个定义好的假值:布尔值。FALSE这是整数。0,float0.0空字符串''哦,是的。""无信息提供,无法翻译。'0'好的,请发送你需要翻译的内容。NULL,一个包含零元素的数组,以及特殊的类型unset好的,请提供需要翻译的内容。
理解这个概念对于控制结构(如)非常重要。if声明和三元运算符,以及返回布尔值或需要布尔类型参数的函数。
基本示例
让我们从一些基本的例子开始:
// Falsy values
var_dump((bool) ''); // bool(false)
var_dump((bool) 0); // bool(false)
var_dump((bool) 0.0); // bool(false)
var_dump((bool) '0'); // bool(false)
var_dump((bool) NULL); // bool(false)
var_dump((bool) array()); // bool(false)
// Truthy values
var_dump((bool) 'Hello'); // bool(true)
var_dump((bool) 1); // bool(true)
var_dump((bool) -2); // bool(true)
var_dump((bool) 2.3); // bool(true)
var_dump((bool) array(1)); // bool(true)
var_dump((bool) 'false'); // bool(true)
条件语句
现在,让我们看看一些条件语句的实际应用:
if ('hello') {
echo 'This is truthy.';
} else {
echo 'This is falsy.';
}
// Outputs: This is truthy.
if (0) {
echo 'This is truthy.';
} else {
echo 'This is falsy.';
}
// Outputs: This is falsy.
注意,即使包含文本“false”的非空字符串也被视为真值,因为它们不是特殊的假值之一。
与函数工作
PHP 函数通常依赖于真值和假值。这里有一个例子:
function isEmpty($value) {
return !$value;
}
echo isEmpty(''); // Outputs: 1 (true)
echo isEmpty('PHP'); // Outputs: (no output because it's false)
这个简单的函数展示了如何通过返回一个否定值来帮助判断值是否为假(即为空或未设置)。
高级真伪检查
在更高级的场景下,你可能会处理对象或检查变量是否存在。让我们来探讨一下:
// Objects are always truthy
class MyClass {}
$myObject = new MyClass();
if ($myObject) {
echo 'This object is truthy.';
}
// Outputs: This object is truthy.
// Using isset() to check for variable existence
$notSet;
if (isset($notSet)) {
echo 'This variable is set and truthy.';
} else {
echo 'This variable is not set or falsy.';
}
// Outputs: This variable is not set or falsy.
在JavaScript中,即使一个新创建的对象没有属性或方法,它仍然被视为真值。
isset() 和 empty() 函数
对不起,我无法理解您的问题。请提供更多信息或重新描述您的问题。isset()and 是中文里的“并且”的意思。empty()函数常用于在PHP中检查变量的状态。以下是你应该了解的内容:
// isset() checks if a variable is set and is not NULL
$myVar = '';
var_dump(isset($myVar)); // bool(true)
// empty() checks if a variable is 'empty,'
// which includes both falsy values and undefined variables
var_dump(empty($myVar)); // bool(true)
var_dump(empty($notDefinedVar)); // bool(true)
isset()特别有用,当您想检查变量是否存在而无需触发错误时。尽管empty()可以用来检查一个值是否为假值或尚未设置。
严格的比较
在PHP中使用。==为了进行比较,可以实现类型切换(type juggling),这可能会导致意外的真值或假值评估。使用===对于严格的比较:
if (0 == '0') {
echo 'Truthy comparison.';
} else {
echo 'Falsy comparison.';
}
// Outputs: Truthy comparison.
if (0 === '0') {
echo 'Truthy comparison.';
} else {
echo 'Falsy comparison.';
}
// Outputs: Falsy comparison.
结论
在本指南中,我们学习了PHP中的真值和假值的概念,探讨了基础到高级的示例,并强调了理解这些概念对于控制你的PHP代码流程的重要性。这种知识将在您的开发旅程中大有裨益,帮助您编写更健壮且错误预防性更强的代码。

