html5中文学习网

您的位置: 首页 > 网络编程 > PHP编程 » 正文

PHP错误提示解析_PHP教程_编程技术

[ ] 已经帮助:人解决问题

 32VHTML5中文学习网 - HTML5先行者学习网

  先说PHP的错误信息,来自PHP100论坛32VHTML5中文学习网 - HTML5先行者学习网

  PHP的错误信息由一下几部分构成32VHTML5中文学习网 - HTML5先行者学习网

  {错误类型}: {错误原因} in {错误文件} on {错误行数}32VHTML5中文学习网 - HTML5先行者学习网

  说明了在哪个文件的哪一行中因何种原因出现了何种错误。32VHTML5中文学习网 - HTML5先行者学习网

  常见的错误类型一般有下面几种:32VHTML5中文学习网 - HTML5先行者学习网

  Parse error(解析错误)一般都伴随着Syntax errors(句法错误) ,说明你的程序不符合PHP的语法。32VHTML5中文学习网 - HTML5先行者学习网

  它是级别最高的错误,整个脚本根本不会被执行。32VHTML5中文学习网 - HTML5先行者学习网

  一般都是由一个表达式缺少";" 或各种括号引号不成对引起的。看详细的信息就能知道问题的所在。32VHTML5中文学习网 - HTML5先行者学习网

  一般句法错误都会给你提示一个解析器代号,告诉你出现的问题是在哪里。比如:32VHTML5中文学习网 - HTML5先行者学习网

  Parse error: syntax error, unexpected T_STRING in xxx.php on line 932VHTML5中文学习网 - HTML5先行者学习网

  T_STRING 是一个解析器代号,顾名思义,它代表字符串,很多错误原因都会带解析器代号。通过它你可以更直接的了解到错误的原因。32VHTML5中文学习网 - HTML5先行者学习网

  unexpected意思是非预期的,换句话说也就是多余的。32VHTML5中文学习网 - HTML5先行者学习网

  更多解析器代号请参考:http://www.php.net/manual/zh/tokens.php 或php手册 英文版中叫:List of Parser Tokens 中文版中叫:解析器代号列表32VHTML5中文学习网 - HTML5先行者学习网

  上面的错误的意思是说你的第九行有一个非预期的字符串。32VHTML5中文学习网 - HTML5先行者学习网

  我的代码:32VHTML5中文学习网 - HTML5先行者学习网

  1-7: 略32VHTML5中文学习网 - HTML5先行者学习网

  8 : test(array('a'))32VHTML5中文学习网 - HTML5先行者学习网

  9 : xxx();32VHTML5中文学习网 - HTML5先行者学习网

  10 : >32VHTML5中文学习网 - HTML5先行者学习网

  这个问题如何解决呢?把第九行的xxx删掉,的确符合PHP语法了。32VHTML5中文学习网 - HTML5先行者学习网

  但是那不是我想要的,实际上是我的第8行缺少了一个";",解决办法是在第8行结尾加分号。32VHTML5中文学习网 - HTML5先行者学习网

  注意:这个例子还说明了一个问题,错误报告说是哪行,问题不一定就非在哪行,也可能是它的前面一行或几行造成的。最典型的例子是某程序提示出错行数在文件的最后一行,你去看,发现那行除了“>”以外没有别的字符,这种情况一般是缺少引号导致的。你要往前面找不成对的引号或者别的什么标点。如果你非要抬杠,认准了行号不松口,那就不是php的问题了。32VHTML5中文学习网 - HTML5先行者学习网

  Fatal Error(致命错误),仅次于Parsing Error的错误,执行到发生错误的行时,脚本会终止运行。32VHTML5中文学习网 - HTML5先行者学习网

  在程序符合PHP语法的基础上,使用了未定义的函数,或require一个不存在的文件,死循环导致程序执行超时,都会导致fatal error。32VHTML5中文学习网 - HTML5先行者学习网

  一般表现为:32VHTML5中文学习网 - HTML5先行者学习网

  Fatal Error: Call to undefined function func() in php100.php on line 某某32VHTML5中文学习网 - HTML5先行者学习网

  就是说在某某行你调用了一个未定义的func函数,这时候一般就是看你是否忘了包含该包含的文件,是否写错了函数名,是否写错了文件名。(PHP100.com)32VHTML5中文学习网 - HTML5先行者学习网

  Warning(警告),比致命错误级别稍低,但程序不会因为脚本错误而终止。32VHTML5中文学习网 - HTML5先行者学习网

  一般出现在include一个不存在的文件,或者一个程序需要一个参数,但是你没传参数,并且你也没指定参数的默认值。32VHTML5中文学习网 - HTML5先行者学习网

  Warning视情况可以避免出现,实在没法避免,可以加@强行屏蔽。32VHTML5中文学习网 - HTML5先行者学习网

  Notice(通知),级别最低,一般可以无视,不会影响到脚本的运行。多数发生在变量或数组下标未定义的情况。32VHTML5中文学习网 - HTML5先行者学习网

  注意:多数notice都可忽略,但是少数的notice也可能会反映出比较严重的问题。32VHTML5中文学习网 - HTML5先行者学习网

  比如 Notice: Undefined variable: sql in xxx.php on line xx32VHTML5中文学习网 - HTML5先行者学习网

  你看到有个变量"sql"未定义,这就可能很危险了,在register_globals=on的情况下,没准这个错误直接就成为了别人操作数据库的后门。32VHTML5中文学习网 - HTML5先行者学习网

  此外还有一些别的类型的错误,平时不常见,我就不多说了。32VHTML5中文学习网 - HTML5先行者学习网

  总结32VHTML5中文学习网 - HTML5先行者学习网

  综上所述,PHP的错误提示会告诉我们很多事情,为我们查找错误提供了极大的方便。好好利用它,会大大的提高我们的工作效率和工作质量。32VHTML5中文学习网 - HTML5先行者学习网

  不过,它带来好处的同时,也可能会透露服务器的敏感信息,容易让攻击者发现服务器的漏洞。32VHTML5中文学习网 - HTML5先行者学习网

  php开发环境一定要打开全部错误提示,打开错误显示。最大限度的减少事故的发生。32VHTML5中文学习网 - HTML5先行者学习网

  生产环境千万要把错误显示关闭,改用日志来记录错误。别给有心人以可乘之机。32VHTML5中文学习网 - HTML5先行者学习网

32VHTML5中文学习网 - HTML5先行者学习网
32VHTML5中文学习网 - HTML5先行者学习网
(责任编辑:)
推荐书籍
推荐资讯
关于HTML5先行者 - 联系我们 - 广告服务 - 友情链接 - 网站地图 - 版权声明 - 人才招聘 - 帮助