php中布尔值的数学运算
我正在试验一些php中布尔值的数学运算,php,Php,我正在试验一些布尔值,出于好奇,我尝试了以下方法: $_r = TRUE + FALSE; if ($_r) ? print 'TRUE' : print 'FALSE'; // Prints TRUE 我发现它返回TRUE,甚至减法(无论顺序如何)TRUE-FALSE也返回TRUE。 有可能对布尔值进行加法、乘法、除法或减法吗?看来这是可以接受的,因为它分别将真值和假值视为1和0,加、减、,对于布尔值完全允许除法和乘法,以下是证明: $_r = FALSE * TRUE; // (0 * 1
布尔值,出于好奇,我尝试了以下方法:
$_r = TRUE + FALSE;
if ($_r) ? print 'TRUE' : print 'FALSE'; // Prints TRUE
我发现它返回TRUE
,甚至减法(无论顺序如何)TRUE-FALSE
也返回TRUE
。
有可能对布尔值进行加法、乘法、除法或减法吗?看来这是可以接受的,因为它分别将真值
和假值
视为1
和0
,加、减、,对于布尔值
完全允许除法和乘法,以下是证明:
$_r = FALSE * TRUE; // (0 * 1)
if ($_r) ? print 'TRUE' : print 'FALSE'; // prints FALSE
$_r = FALSE / TRUE; // (0 / 1)
if ($_r) ? print 'TRUE' : print 'FALSE'; // prints FALSE
$_r = TRUE / FALSE; // (1 / 0)
if ($_r) ? print 'TRUE' : print 'FALSE'; // prints Warning: **Division by zero**
嗯,这似乎是可以接受的,因为它将TRUE
和FALSE
值分别视为1
和0
,并且布尔值完全允许加、减、除和乘的常见数学运算,下面是证明:
$_r = FALSE * TRUE; // (0 * 1)
if ($_r) ? print 'TRUE' : print 'FALSE'; // prints FALSE
$_r = FALSE / TRUE; // (0 / 1)
if ($_r) ? print 'TRUE' : print 'FALSE'; // prints FALSE
$_r = TRUE / FALSE; // (1 / 0)
if ($_r) ? print 'TRUE' : print 'FALSE'; // prints Warning: **Division by zero**
PHP文档中关于以下内容的快速引用:
PHP自动类型转换的一个示例是加法运算符“+”。如果任一操作数是浮点,则两个操作数都作为浮点计算,结果将是浮点。否则,操作数将被解释为整数,结果也将是整数。请注意,这不会更改操作数本身的类型;唯一的变化是如何计算操作数以及表达式本身的类型
让我们将此应用于您的代码$\u r=TRUE+FALSE
:由于操作数(TRUE
和FALSE
)都不是浮点数,因此它们被转换为整数(TRUE
=1
,FALSE
=0
),加法变成1+0
。结果(整数1
)存储在变量$\r
中
在下一条语句(if($_r)print'TRUE';else print'FALSE';
)中,接受括号内的表达式并计算其布尔值。任何不同于零的整数都是TRUE
,零是FALSE
。$\u r
的值为1
,并转换为布尔值,即为TRUE
。因此,代码将打印PHP文档中关于以下内容的快速引用:
PHP自动类型转换的一个示例是加法运算符“+”。如果任一操作数是浮点,则两个操作数都作为浮点计算,结果将是浮点。否则,操作数将被解释为整数,结果也将是整数。请注意,这不会更改操作数本身的类型;唯一的变化是如何计算操作数以及表达式本身的类型
让我们将此应用于您的代码$\u r=TRUE+FALSE
:由于操作数(TRUE
和FALSE
)都不是浮点数,因此它们被转换为整数(TRUE
=1
,FALSE
=0
),加法变成1+0
。结果(整数1
)存储在变量$\r
中
在下一条语句(if($_r)print'TRUE';else print'FALSE';
)中,接受括号内的表达式并计算其布尔值。任何不同于零的整数都是TRUE
,零是FALSE
。$\u r
的值为1
,并转换为布尔值,即为TRUE
。因此,代码打印出TRUE
别忘了埃尔维斯<代码>打印$_r?'TRUE':'FALSE'代码>我与反对票无关。我只是指出,你可以使用另一种语法,使用所谓的elvis运算符,或三元运算符。无意伤害我不知道这个名字也叫“好”!至于否决票的问题是:“我的答案怎么了?”不是针对你的。别忘了埃尔维斯<代码>打印$_r?'TRUE':'FALSE'代码>我与反对票无关。我只是指出,你可以使用另一种语法,使用所谓的elvis运算符,或三元运算符。无意伤害我不知道这个名字也叫“好”!至于否决票的问题是:“我的答案怎么了?”不是针对你的。简单:PHP类型Juggling如果你来这里是因为我这样的大脑放屁:简单:PHP类型Juggling如果你来这里是因为我这样的大脑放屁: