我正在尝试使用功能IF
和empty()
来制作||
语句。我不确定问题出在运算符和函数之间,但我在其他任何方面都没有线索。
IF
中的每个检查都是单独进行的。
这是我想做的,但是我有一个错误:
if(empty($arrayA['somevalue']) || ($x->val1 == 0 && intval($x->valInteger) > 0)){
$arrayA['somevalue'] = $y;
}
错误:
致命错误:未捕获错误:调用 [path] /ProductsImporter.php:648中未定义函数 [path] ()堆栈跟踪:#0
第648行是IF
我也尝试过使用is_numeric()
,但这并没有改变。
我的快速修复程序运行正常,但是很丑陋,它是:
if(empty($arrayA['somevalue'])){
$arrayA['somevalue'] = $y;
} else if ($x->val1 == 0 && intval($x->valInteger) > 0){
$arrayA['somevalue'] = $y;
}
答案 0 :(得分:3)
根据评论中的讨论,问题是一个微妙的问题:||
运算符周围的空格原来是Unicode空格字符。因此,PHP将||
运算符后的空白直接解释为函数的名称,从而导致错误。
用非Unicode空格替换有问题的空格可解决此问题。
答案 1 :(得分:0)
就像@ B.Fleming在评论中说的那样,问题出在||
周围。由于某些原因,这些字符不是正常的空格,并且没有正确处理。
摆脱空格就完成了工作,所以这是新行(为了以防万一,我摆脱了每个空格):
if(empty($arrayA['somevalue'])||($x->val1==0&&intval($x->valInteger)>0)){
$arrayA['somevalue'] = $y;
}
为了将来参考,我将Coda 2与PhpPlugin 4.2beta和Twig-HTML 0.2一起使用。我不确定是Coda,模块还是其他东西,但这就是我的信息。