我一直在使用php遇到一个奇怪的问题并且想知道是否有人可以提供帮助。这可能是我看不到的一件非常小的蠢事。
“if”语句在我使用&&和||用于逻辑表达式。 最新的例子:
$isNotSet = !isset($moved); // var_dump prints false
$moveSuccess = $moved instanceof SuccessNotification; // var_dump prints true
if(($isNotSet == true) || ($moveSuccess == true)){
脚本总是在该行中断,并且不再继续。在此之后它不会执行任何操作。 我尝试了很多东西,例如
if(!isset($moved) || $moved instanceof SuccessNotification){
或
if(!isset($moved) === true || $moved instanceof SuccessNotification){
或
$isNotSet = !isset($moved);
$moveSuccess = $moved instanceof SuccessNotification;
if($isNotSet === true || $moveSuccess === true){
一切都行不通。我知道他们都是一样的,我只是想消除错误轨道的想法。其中一些例子在Netbeans中被标记为语法错误,但并非所有这些都让我思考。
我想知道这里发生了什么,因为这限制了很多编码。但正如我所说,我可能忽略了一件非常简单的事情。
编辑:脚本在没有显示任何错误或警告的情况下中断,它只是在该行停止工作
EDIT2: 我拿走了片段并自行执行了。
$moved = new SuccessNotification($code, $title, $message);
echo 1;
$isNotSet = !isset($moved);
echo 2;
$moveSuccess = $moved instanceof SuccessNotification;
echo 3;
if(($isNotSet === true) || ($moveSuccess === true) || 1){
echo 4;
}else{
echo 5;
}
echo 6;
这打印“123”,没有别的。是的,我已经包含了SuccessNotification类(否则会出现错误),这已经在系统范围内使用并正常工作,只是删除了该行以便在此处发布。 我认为没有人真正有线索因此试图找到一个简单的解决方案,因为我认为这只是一个简单的事情。但是我意识到我已经尝试了你在这种情况下建议或将要做的一切。
答案 0 :(得分:-1)
不应该是:
if(($isNotSet === true) || ($moveSuccess === true)){
而不是:
if(($isNotSet == true) || ($moveSuccess == true)){