PHP变量int和string,如何正确使用


PHP Variables int and string, what to use correctly

有人可以解释建议我,为什么:(如果我设置DB字段int像"1" -这个语句工作,但如果我设置它作为字符串-它不工作。

:

if ( $results['page']->pageStatus != 1 ) {
header('Location: 404.html');}

行不通:

if ( $results['page']->pageStatus !== "active" ) {
header('Location: 404.html');}

根据文档:

如果将数字与字符串进行比较,或者比较涉及数字字符串,则将每个字符串转换为数字,并以数字方式执行比较。这些规则也适用于switch语句。当比较为===或!==时,类型转换不会发生,因为这涉及到比较类型和值。

所以当你这样做时(我强烈怀疑$results['page']->pageStatusstring类型):

if ( $results['page']->pageStatus != 1 )

$results['page']->pageStatus转换为数字。在这种情况下,它被转化为00 != 1求值为true

需要将表达式求值为真或假。改为

if ( !($results['page']->pageStatus == "active") ) { header('Location: 404.html');}