ошибка синтаксиса – ошибка синтаксиса, неожиданный T_NS_SEPARATOR

У меня есть эта строка в PHP:

$bom != b"\xEF\xBB\xBF" 

Когда я запускаю его, я получаю сообщение об ошибке:

 Parse error: syntax error, unexpected T_NS_SEPARATOR in C:\xampp\htdocs\MediaAlbumWeb\Utils\Utils.php on line 218 

Что такое T_NS_SEPARATOR в php и почему это неожиданно?

Вероятно, у вас есть незакрытая одиночная или двойная кавычка выше этой строки в вашем коде.

Что такое b , вне кавычек?

Если это сравнение, это может быть что-то вроде:

 if($bom != "b\xEF\xBB\xBF") { //code } 

Простой код для воспроизведения этой ошибки в PHP:

 <?php $arg = "'T'; //this unclosed double quote is perfectly fine. $vehicle = ( $arg == 'B' ? 'bus' : 'not a bus'); print $vehicle . "\n"; //error is thrown on this line. ?> 

Запустите это, он выдает сообщение об ошибке:

 PHP Parse error: syntax error, unexpected T_NS_SEPARATOR in /var/www/sandbox/eric/code/php/run08/a.php on line 6 

Вы делаете много Python, случайно? b "string" не является допустимым способом записи строки в PHP, хотя она находится в Python. Если вам просто нужны байты, вы можете написать строку как:

 echo "\xEF\xBB\xBF"; 

Это работает. Если вы хотите проверить неравенство:

 if( $bom != "\xEF\xBB\xBF" ) { } 

Что вы все равно проверяете? Для отметки байтового заказа? И если да: почему, точно?