相关疑难解决方法(0)

Java三元(即时)评估

我无法找到规范的相关部分来回答这个问题.在Java中的条件运算符语句中,是否评估了true和false参数?

因此,以下内容可能会抛出NullPointerException

Integer test = null;

test != null ? test.intValue() : 0;
Run Code Online (Sandbox Code Playgroud)

java conditional-operator short-circuiting

27
推荐指数
3
解决办法
2万
查看次数

使用条件运算符"?:"和"OR"的PHP语法惊喜

今天,我开口满口如下:

$asdf = ((1 OR true) ? "asdf" : "fdsa");
var_dump($asdf); // print "asdf"

$asdf = (1 OR true) ? "asdf" : "fdsa";
var_dump($asdf); // print "asdf"

$asdf = (1 OR true ? "asdf" : "fdsa");
var_dump($asdf); // print true

$asdf = 1 OR true ? "asdf" : "fdsa";
var_dump($asdf); // print 1
Run Code Online (Sandbox Code Playgroud)

好吧,最后一次并不让我感到惊讶,但第三次?谁能解释一下?

php syntax operators ternary-operator conditional-operator

17
推荐指数
1
解决办法
875
查看次数

"&&"和"和"之间的区别:运算符优先级和短路

我正想通过php.net的运算符优先级部分,碰上了这个例子,其称

$a = 1;
$b = null;
$c = isset($a) && isset($b);
$d = ( isset($a) and isset($b) );
$e = isset($a) and isset($b);
var_dump($a, $b, $c, $d, $e);
//Result:
int(1)
NULL
bool(false)
bool(false) <== I get this
bool(true)  <== I do not get this
Run Code Online (Sandbox Code Playgroud)

我在代码中使用了大量的调试和详细的print(_r)语句来跟踪我在代码中的位置.所以我在代码之间使用$debug and print_r($dataArray)$verbose and print "Updating dataArray\n"作为单独的语句,允许我控制这些print(_r)语句.这来自我以前写过很多的BASH经验[[ $condition ]] && { #Do if true } || { #Do if false }.在BASH,我知道它们被短路并用这个事实来编写很多简单的一个衬里.
现在我观察到这种(写作$verbose and print)的这种做法正在慢慢渗入我的if …

php operator-precedence short-circuiting

6
推荐指数
1
解决办法
2496
查看次数

PHP是否会停止照顾一个'或'(||)?

一个简单的问题可以消除对大量if/else语句的需求.

例如,如果我有这样的查询:

if ($success1=$db->query('SELECT * FROM `foo`;') || $success2=$db->query('SELECT * FROM `bar`;')) {
   ...
}
Run Code Online (Sandbox Code Playgroud)

是否会在第一次查询成功时停止检查?

php if-statement

3
推荐指数
2
解决办法
365
查看次数

PHP比较性质 - 适应性还是遗忘?

PHP在逻辑运算符方面的本质是什么?假设a并且b是表达式:

if (a || b) { body }
Run Code Online (Sandbox Code Playgroud)

以下内容哪些是对的?

  • PHP总是评估a和b的真实性.(不明智的性质),或
  • 如果a为真,PHP不会评估b的真实性(自适应性和内存优化:只有当a为假时,PHP才会评估b的真实性).

php comparison logic

-2
推荐指数
1
解决办法
114
查看次数