微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

PHP解析错误(意外T_IF)

参见英文答案 > Reference – What does this error mean in PHP?                                    33个
我似乎无法找到为什么我会得到一个

Parse error: Syntax error, unexpected ‘if’ (T_IF) in /Applications/XAMPP/xamppfiles/htdocs/oop/index.PHP on line 8

我检查了缺少的冒号/圆括号/花括号但找不到任何东西!还有一些其他文件指的是这些.我也应该发布它们吗?

(getInstance是我的db类中的静态方法)
(count和get是我的db类中的方法)

提前致谢!

<?PHP

require_once 'core/init.PHP';

$user = DB::getInstance()->get('users', array('username', '=', 'bob'));

if(!$user->count()) {
    echo 'No user';
} else {
    echo 'OK';
}

?>

init.PHP看起来像这样:

<?PHP 

session_start();

$GLOBALS['config'] = array(

'MysqL' => array(
    'host' => '127.0.0.1',
    'username' => 'root',
    'password' => '',
    'db' => 'oop'),

'remember' => array(
    'cookie_name' => 'hash',
    'cookie_expiry' => 604800),

'session' => array(
    'session_name' => 'user')
);

spl_autoload_register(function($class) {
    require_once 'classes/' . $class . '.PHP';
});

require_once 'functions/sanitize.PHP';
?>

解决方法:

您的文件包含第6行末尾的字节序列0xefbbbf(恰好是U+FEFF的UTF-8编码,零宽度不间断空格):

$hexdump -C index.txt
00000000  3c 3f 70 68 70 0a 0a 72  65 71 75 69 72 65 5f 6f  |<?PHP..require_o|
00000010  6e 63 65 20 27 63 6f 72  65 2f 69 6e 69 74 2e 70  |nce 'core/init.p|
00000020  68 70 27 3b 0a 0a 24 75  73 65 72 20 3d 20 44 42  |hp';..$user = DB|
00000030  3a 3a 67 65 74 49 6e 73  74 61 6e 63 65 28 29 3b  |::getInstance();|
00000040  0a 24 75 73 65 72 2d 3e  67 65 74 28 27 75 73 65  |.$user->get('use|
00000050  72 73 27 2c 20 61 72 72  61 79 28 27 75 73 65 72  |rs', array('user|
00000060  6e 61 6d 65 27 2c 20 27  3d 27 2c 20 27 62 6f 62  |name', '=', 'bob|
00000070  27 29 29 3b ef bb bf 0a  0a 69 66 28 21 24 75 73  |'));.....if(!$us|
00000080  65 72 2d 3e 63 6f 75 6e  74 28 29 29 20 7b 0a 09  |er->count()) {..|
00000090  65 63 68 6f 20 27 4e 6f  20 75 73 65 72 27 3b 0a  |echo 'No user';.|
000000a0  7d 20 65 6c 73 65 20 7b  0a 09 65 63 68 6f 20 27  |} else {..echo '|
000000b0  4f 4b 27 3b 0a 7d 0a 0a  3f 3e                    |OK';.}..?>|
000000ba

很可能你的文本编辑器错误添加了这样一个不间断的空间,因为它不知道你正在使用代码.

PHP愉快地将其解析为(n未定义的)常量的名称,因此当它遇到if结构(在常量之后立即在语法上无效)时会抱怨.

文件删除此不间断空格.

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。

相关推荐