在我的上一个项目中,我必须指定一个值,通常我使用以下语句:
<?php
$true = 1;
$false = 0;
$hasAccess = $true ? 1 : 0;
print $hasAccess;
?>
但这适用于:
<?php
$true = 1;
$false = 0;
$hasAccess = $true || $false;
print $hasAccess;
?>
为什么?
更新: 我知道什么是OR / ||是和我所期待的。但我以前没有见过这种可能性。
答案 0 :(得分:1)
因为
$true ? 1 : 0;
评估为1
,因为$true
为真,
$true || $false;
出于同样的原因,也会评估为1
。
答案 1 :(得分:1)
因为0被自动转换为(bool)false,而其他任何东西(bool)都是真的。 所以你基本上说的是:
$hasaccess = true OR false;
另见: http://php.net/manual/en/language.types.boolean.php http://php.net/manual/en/language.operators.logical.php
答案 2 :(得分:0)
如果表达式的任一侧为true,则OR将返回true。
由于$ true = 1,因此表达式整体为真。
基本上你说“如果$ true为真,或者$ false为真,则$ hasAccess为真”
答案 3 :(得分:0)
一个||这是一个OR语句返回的天气,其中一个语句的计算结果为true。 例子:
$bool = true || false;
// $bool = true
$bool = false || true;
// $bool = true
$bool = false || false;
// $bool = false
$bool = false || true || false;
// $bool = true
$bool = false || 1;
// $bool = true
$bool = false || 'test';
// $bool = true