Ошибка синтаксиса - ошибка синтаксиса, неожиданный 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 и почему это неожиданно?
Ответы
Ответ 1
Вероятно, у вас есть незакрытая одиночная или двойная цитата выше этой строки в вашем коде.
Что такое 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
Ответ 2
Вы делаете много Python, случайно? b "string" не является допустимым способом записи строки в PHP, хотя она находится в Python. Если вам просто нужны байты, вы можете написать строку как:
echo "\xEF\xBB\xBF";
Это работает. Если вы хотите проверить неравенство:
if( $bom != "\xEF\xBB\xBF" ) {
}
Что вы все равно проверяете? Для отметки байтового заказа? И если да: почему, точно?