基本上$num = $dt->format('d')
返回一个字符串。
如果你有==
一个比较运算符并且两个值不是来自相同的数据类型,PHP 会尝试匹配它们。
因此,在您的情况下($num == 1
),您正在将字符串与文字整数进行比较,
因此 PHP 正在尝试将 Sting 转换为整数(仅用于比较)。
最后,您已经在比较两个整数。当比较运算符is
时不会发生类型转换,因为这涉及比较类型和值。因此,与 类似的比较总是会返回 false。===
!==
$num = '1';
$num === 1
如果您想去除前导零但不转换数据类型,我会使用:
$num_as_str = ltrim($num,'0');
如果您想将变量转换为整数,请使用:
$num_as_int = intval($num);
来自 PHP 手册:
字符串转换为数字
在数字上下文中评估字符串时,结果值和类型确定如下。
如果字符串包含任何字符“.”、“e”或“E”,则该字符串将被评估为浮点数。否则,它将被评估为整数。
该值由字符串的初始部分给出。如果字符串以有效的数字数据开头,这将是使用的值。否则,该值将为 0(零)。有效的数字数据是一个可选的符号,后跟一个或多个数字(可选地包含一个小数点),后跟一个可选的指数。指数是“e”或“E”后跟一位或多位数字。