Php 如何检查未知变量的值和类型
我有一个变量可以是int或bool,这是因为我查询它的数据库在某个点上将变量类型从bool更改为int,其中现在1为true,0为false 由于php使用“==”是“微妙的”,我想问一下,这是否正确,为什么要知道该变量是否为真:Php 如何检查未知变量的值和类型,php,Php,我有一个变量可以是int或bool,这是因为我查询它的数据库在某个点上将变量类型从bool更改为int,其中现在1为true,0为false 由于php使用“==”是“微妙的”,我想问一下,这是否正确,为什么要知道该变量是否为真: if($wallet->locked === 1 || $wallet->locked === true) 我想我这样问:类型是int和one吗?或者var类型是bool和true 您将如何解决这个问题?您的解决方案似乎很完美,但您也可以使用。之后,您可
if($wallet->locked === 1 || $wallet->locked === true)
我想我这样问:类型是int和one吗?或者var类型是bool和true
您将如何解决这个问题?您的解决方案似乎很完美,但您也可以使用。之后,您可以使用“整数”或“布尔值”检查返回值。根据结果,您可以按需要的方式处理数据 解决方案#1。如果
$wallet
的值为false
或0
,则PHP不会费心检查其类型(因为&&
运算符在PHP中短路):
解决方案#2(取决于您想要实现的目标):
将产生:
false
true
及
将产生:
false
true
如果有帮助,请告诉我 您的代码是正确的 它确实会检查类型是否为且值是否为
1
,或者类型是否为且值是否为true
表达式($x===1 | |$x===true)
在其他情况下都将为false
如果您知道您的变量已经是整数或布尔值,并且您可以使用除0
以外的所有整数计算为true
,那么您可以使用:
if($wallet->locked) {
无论何时使用上述表达式,它都是正确的,但对于像
-1、2、1000
或任何其他非零整数这样的值也是正确的。只需使用=
。然后1
和true
都为true。$wallet->locked=(布尔)$wallet->locked代码>如果($wallet->锁定){}
true
if($wallet->locked) {