php报错“Parse error: syntax error”是什么原因?

发布网友 发布时间:2022-04-06 04:25

我来回答

2个回答

懂视网 时间:2022-04-06 08:47

php中的错误类型有:1、程序本身的错误;2、未定义符号;3、操作系统所带来的差异;4、PHP配置差异;5、SAPI差异;6、运行错误 ;7、PHP错误;8、定义错误处理器。

推荐:《PHP视频教程》

PHP的错误类型

一,程序本身的错误

这种错误是比较容易就可以处理的错误,比如说语法错误或者是编译器无法解析,这些错误在编译的时候,就会不通过编译,然后可以根据错误的提示,找到具体的错误代码。但当使用eval()执行的代码发生错误时,在编译期间是发现不了,它只能等到代码在执行的过程中,对其编译产生错误,如我们执行下列代码,就会在执行过程中出现错误:

<?php 
 echo "this will be echo to putty";
 eval("php error when parser");
 
?>

这种错误和其它的代码错误不同的是,在位于它之前的echo是可以输出的。而其它的代码错误是不会有任何输出的,因为编译就通不过,不会运行。

二,未定义符号

当PHP执行的时候,它可能遇到许多变量、函数等它不知道的名字,因为PHP在编译的时候,并没有完整的了解所有的符号名称、函数名等。

如果只是未定义的常量或者变量,这是只是一个通知的形式告知。但如果是遇到未定义的函数或者类,程序将会终止运行。在关于找不到类的时候,如果用户定义了叫做__autoload的函数,它将在PHP遇到一个未定义的类时调用,如果通过这个函数可以返回类,新加载的类将会被使用,不产生任何错误。

三,通用性错误

3.1 操作系统所带来的差异

一些只在某特殊的平台可用的PHP函数。

一些在某特殊的平台不可用的PHP函数。

一些在不同的平台下有着细微差别的PHP函数。

区别文件名中的路径成份的字符。

外部程序或者服务并不是在所有平台中都可用。

3.2 PHP配置差异

比如配置选项magic_quotes_gpc,如果这个选项是开启的,PHP将增加斜线到所有的外部数据中。这时,如果将程序移植至另一台没有开启这个选项的服务器上上时,用户的输入就会有问题了。处理类似差异的办法是检查PHP代码并通过ini_get()函数查看选项是否启用,然后作一个统一的调整。

register_globals : 该设置决定PHP是否引入GET,POST,cookie,环境变量或者服务器变量为全局变量。一般避免使用。

allow_url_fopen: 如果这个选项设置为false,对URL文件操作的功能是关闭的。

3.3 SAPI差异

四,运行错误

如对硬盘数据或者网络操作以及数据库调用时,由于PHP本身以外的因素所造成的错误。

五,PHP错误

PHP中的错误机制是被所有的PHP内置函数使用的,通常这个简单的机制打印出一个错误信息,包括一些错误相关的基本信息。

错误级别分为:

E_ERROR:严重错误。
E_WARNING:最普通的错误类型。
E_PARSE:解析错误在编译的时候发生。
E_STRICT:这个错误级别是唯一不包含在E_ALL常量中的,为了让PHP4到PHP5的迁移更加容易。
E_NOTICE:表示运行的代码可能在操作一些未知的事情。
E_CORE_ERROR:由于扩展启动失败等导致的。
E_COMPILE_WARNING:编译的时候出现的警告,告诉用户一些不推荐使用的语法信息。
E_COMPILE_ERROR:编译错误。
E_USER_ERROR
E_USER_WARNING
可以用error_reporting(Integer)函数来设置哪些错误被报告。如所有的错误,表示为E_ALL ,除了通告以外的所有错误,可以表示为E_ALL & ~E_NOTICE.
display_errors(boolean):这个设置控制错误是否作为PHP输出的一部分显示出来。
log_errors(boolean),这个设置控制错误是否记录。日志的地址是通过error_log(String)设置决定的。默认情况下,错误被记录到WEB服务器的错误日志中。
html_errors(boolean):设置控制是否在错误信息中采用HTML格式 。

六,定义错误处理器

可以调用 set_error_handler(error_handle_function,error_types)指定错误处理器。如

function customError($errno, $errstr, $errfile, $errline)
 { 
 echo "<b>Custom error:</b> [$errno] $errstr<br />";
 }
set_error_handler("customError"); // 默认为所有的错误,就是E_ALL.

热心网友 时间:2022-04-06 05:55

是字符串拼写的问题,经常还会有在语句最末尾忘记加上“;”而导致的。syntax error, unexpected T_VARIABLE 是PHP开发常见的错误,也是最为低级的错误

PHP,一个嵌套的缩写名称,是英文超级文本预处理语言(PHP:Hypertext Preprocessor)的缩写。PHP 是一种 HTML 内嵌式的语言,PHP与微软的ASP颇有几分相似,都是一种在服务器端执行的嵌入HTML文档的脚本语言,语言的风格有类似于C语言,现在被很多的网站编程人员广泛的运用。

php常见错误错误类型: 

未使用二进制上传  

代码:Fatal error: This encoded file is corrupted. Please refer to http://www.zend.com/support/support_faq.php?id=loader_file_corrupt for further help in/webhome/****.com/web/www/index.php on line 0  

数据表中缺少字段 代码:    An error was encountered  Boka SiteEngine

数据库错误 错误信息1054: Unknown column 'tuijian' in 'where clause' 出现错误的查询信息是SELECT * FROM boka_proct WHERE tuijian=1 AND classid IN ('1','0')ORDER BY id DESC LIMIT 4  

服务器*了网站使用内存的大小为8M,现在已经超过 代码:    Fatal error: Allowed memory size of 8388608 bytes exhausted (tried to allocate 58240 bytes)  

这个是模板错误,header.php的529行所指出的模板,该模板的79行出错 [code]in /webhome/***.com/web/www/header.php(529) : eval()'d code on line 79  

数据库表不存在 代码:    An error was encountered  Boka SiteEngine1146: Table 'test.boka_settings' doesn't exist SELECT value FROM boka_settings WHERE variable='defaultstyleid'  

未安装或者数据库的用户名密码错误代码:    An error was encountered  Boka SiteEngine 1045: Access denied for user: 'root@localhost' (Using password: YES)     

声明声明:本网页内容为用户发布,旨在传播知识,不代表本网认同其观点,若有侵权等问题请及时与本网联系,我们将在第一时间删除处理。E-MAIL:11247931@qq.com