Побитовое не «~» в PHP не работает, «Фатальная ошибка: неподдерживаемые типы операндов в ...» - PullRequest
1 голос
/ 08 февраля 2011

PHP Doc (http://php.net/manual/en/language.operators.bitwise.php) четко указывает:

~ $a    Not  Bits that are set in $a are not set, and vice versa.

Так почему я получаю фатальную ошибку при попытке запустить следующую строку?

~ $noResults;

TIA

Ответы [ 3 ]

4 голосов
/ 08 февраля 2011

Вы получаете эту ошибку, потому что $noResults не является целым числом (или строкой, но это только из-за неявного приведения типов).

1 голос
/ 08 февраля 2011

~ будет работать с числами и строками, не может работать с объектами и массивами.

И переменная для отрицания ДОЛЖНА быть установлена.

 echo ~ $a;  // won't work

тогда

$a = '';
echo ~ $a;  // will work

и

$a; echo ~$a; // will work too.
0 голосов
/ 08 февраля 2011

У меня с этим нет проблем:

$a = 5;
$a = ~ $a;
echo $a; // -6

Вы уверены, что $noResults является целым числом?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...