Рекомендация : Никогда не используйте оператор !=
для сравнения неравенства, где один или оба аргумента являются наборами узлов.
По определению выражение :
$node-set != $value
вычисляется как true()
точно, когда в $node-set
есть хотя бы один узел, так что его строковое значение не равно строковому значению $value
.
Используя это определение :
$empty-nodeset != $value
всегда равно false()
, поскольку в $empty-nodeset
нет ни одного узла, для которого выполняется неравенство.
Решение
Используйте
not($node-set = $value)
Тогда вы получите все результаты true()
, как хотели .