在PHP中对布尔表达式进行类型转换

时间:2013-04-17 08:13:33

标签: php casting expression

我有3种不同的行为:

var_dump((int) true); // returns 1

var_dump((int) true && true); // returns true

var_dump((int) (true && true)); // returns 1

为什么?

4 个答案:

答案 0 :(得分:2)

因为首先完成铸造然后进行AND操作,所以最终得到1&&这是真的

答案 1 :(得分:1)

(int)true && true;

 // same as:
 ((int) true) && true;

 // same as:
 1 && true; // = true

答案 2 :(得分:1)

(int) true

将整数转换为TRUE(给出1)

(int) true && true

将第一个TRUE转换为整数(给出1),然后使用第二个TRUE(将1重新转换为布尔值)转换为TRUE

(int) (true && true)

ANDs TRUE和TRUE(给定TRUE),然后转换为ain整数(给1)

答案 3 :(得分:1)

在第一种情况下,简单类型转换将起作用

var_dump((int) true); // returns 1

在第二种情况下,第一个参数将首先进行类型转换,然后是&&将执行的操作将返回......通常为真

var_dump((int) true && true); // returns true

在第三种情况下,将首先执行将返回true的操作,然后将执行将转换为true的类型转换操作

var_dump((int) (true && true)); // returns 1