PHP解析错误(意外的T_IF)[重复]
Posted
技术标签:
【中文标题】PHP解析错误(意外的T_IF)[重复]【英文标题】:PHP parse error (unexpected T_IF) [duplicate] 【发布时间】:2015-05-10 02:22:54 【问题描述】:我似乎无法找到为什么我会得到一个
解析错误:语法错误,第 8 行 /Applications/XAMPP/xamppfiles/htdocs/oop/index.php 中的意外 'if' (T_IF)
我检查了是否缺少分号/括号/花括号,但找不到任何东西!这些还有其他一些文件。我也应该发布它们吗?
(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';
?>
【问题讨论】:
您确定core/init.php
中没有语法错误吗?自行导航到该页面后是否出现任何解析错误?
@flyingeagle413 该文件路径表明 OP 正在使用 OS X...
@flyingeagle413 如果语法有效,Windows 中的 UAC 不会触发解析错误。
sanitize、init 或 dp.php 没有解析错误——仅在 index.php 中
用十六进制编辑器看看 index.php 可能是值得的。至少你会知道文件中没有意外字符。
【参考方案1】:
您的文件在第 6 行的末尾包含字节序列 0xefbbbf
(恰好是 U+FEFF 的 UTF-8 编码,零宽度不间断空格):
很可能您的文本编辑器错误地添加了这样一个不间断的空格,因为它不知道您正在处理代码。
PHP 很乐意将其解析为一个 (n undefined) 常量的名称,因此当它遇到 if
构造(在常量之后立即在语法上无效)时会报错。
从您的文件中删除这个不间断的空间。
【讨论】:
我必须在 if 语句之前完全删除该行。可能发生了什么?为什么我以前从来没有遇到过这种情况?以上是关于PHP解析错误(意外的T_IF)[重复]的主要内容,如果未能解决你的问题,请参考以下文章
解析错误:语法错误,意外'->'(T_OBJECT_OPERATOR),期望')'[重复]