Ошибка синтаксического анализа - синтаксическая ошибка, неожиданный 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 и почему это неожиданно?

2 ответа

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

Что 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" ) {
}

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

Другие вопросы по тегам