您的位置:

php检查语法错误命令,php检查语法错误命令是什么

本文目录一览:

如何查看php代码语法错误

错误抑制符去掉错误信息,eval和echo一样并不是函数,不能使用变量函数的方法调用比如:$func = ‘eval’$func()这样的调用就是无效的。它会提示没有eval函数,如果你自己定义这么一个函数也是有问

错误抑制符去掉错误信息,eval和echo一样并不是函数,不能使用变量函数的方法调用比如:

$func = ‘eval’

$func()这样的调用就是无效的。它会提示没有eval函数,如果你自己定义这么一个函数也是有问题的。因为eval是一个关键字。

eval调用和include差不多,如果被包含文件中没有明确return就返回null。如果直接eval我们需要检查的文件会造成被检查的文件内代码被执行,这可不是我们想要的,我们只需要检查一下这个文件的语法是否正确。 我们可以在要检查的文件之前添加return 语句,让代码提前跳出,那么后面的代码就不会执行了。好的,就这么干。代码如下:

?PHP

if(!function_exists('PHP_check_syntax')) {

function PHP_check_syntax($file_name,

$error_message = null) {

$file_content = file_get_contents($file_name);

$check_code = "return true; ?";

$file_content = $check_code .

$file_content . " ?PHP ";

if(!@eval($file_content)) {

$error_message = "file: " .

realpath($file_name) . " have syntax error";

return false;

}

return true;

}

}

if(!PHP_check_syntax("file.PHP", $msg)) {

echo $msg;

}

else {

echo "Woohoo, OK!";

}

?PHP

foreach:: a = b

?

因为Parse error 是没法被 set_error_handler处理函数处理的。这个异常没办法catch到。所以才使用了@来抑制错误。这带来的问题就是我们无法得到详细的错误信息。 不过目前我需要的功能也只是检查语法是否正确。不正确的话重新编译模板文件,就这么简单,至于语法错误,在显示网页的时候自然会看得到。

PHP检查语法错误最好的办法就是这个被遗弃的PHP_check_syntax这个方法回到PHP中。下次再研究下他们是出于什么原因把这个函数去掉的。

在PHP中检查PHP文件是否有语法错误的方法

PHP中try{}catch{}语句,任何调用 可能抛出异常的方法的代码都可以使用try语句。Catch语句用来处理可能抛出的异常。.另外检测PHP语法一般编辑器都已经有语法检测功能,比如

Zend Studio(PHP集成开发环境),也自带调试功能

sumlime text 2 怎么自动检查php语法错误

sumlime text 2要实现自动检查php语法错误需要安装 sublimelinter 和 sublimelinter-php 两个插件。

1、配置SublimeLinter

打开 SublimeLinter 的配置文件,Preferences-Package Settings-SublimeLinter-Settings - User,进行如下配置 1. 运行模式:"sublimelinter": "save-only",

SublimeLinter 的运行模式,总共有四种,含义分别如下:

true - 在用户输入时在后台进行即时校验;

false - 只有在初始化的时候才进行校验;

"load-save" - 当文件加载和保存的时候进行校验;

"save-only" - 当文件被保存的时候进行校验;

推荐设置为 “save-only”,这样只在编写完代码,保存的时候才校验,Sublime Text 运行会更加流畅。

校验引擎

"sublimelinter_executable_map":

   {

       "php": "C:\\xampp\\php\\php.exe"  // windows下要使用\\

   }

2、检查方法:

php实际开发怎么处理错误

在php开发过程中,由于不知道向谁求助而心慌意乱地判断以为自己不适合学php。其实错误在每个人学习过程中都会碰到的,千万不要妄自菲薄。很多错误在报错的代码提示中已经告诉我们了,仔细看,不会就百度。现总结一些常见的php错误,以共享php新人。

Php常见错误提示

一、Fatal error: Call to undefined function……

函数不存在,可能的原因:

1、系统不存在这个函数且你也没自定义

2、有人会问,我在别的机器上就不报错。那是因为环境不同,这个函数在本机没开,怎么开?你百度函数名字,就能查到这个函数属于哪个dll,去php.ini里开启。

实例讲解:PHP FATAL ERROR: CALL TO UNDEFINED FUNCTION BCMUL()解决办法

在一台处理网络支付的服务器迁移的时候,发现不能支付。

PHP环境:

PHP版本为5.3.3

系统为Red Hat 4.1.2-54

查看apache的错误日志,发现是加密文件中一个函数bcmul()报错:

复制代码 代码如下:PHP Fatal error: Call to undefined function bcmul() in /php_rsa.php on line xxx

解决办法:

使用如下命令:

复制代码 代码如下:yum install php-bcmath

就安装好了。

如果出现下面这种情况:

复制代码 代码如下:

Loaded plugins: fastestmirror

Loading mirror speeds from cached hostfile

* base: mirrors.yun-idc.com

* extras: mirrors.yun-idc.com

* rpmforge:

* updates: mirrors.yun-idc.com

Setting up Install Process

Resolving Dependencies

-- Running transaction check

--- Package php-bcmath.x86_64 0:5.1.6-40.el5_9 set to be updated

-- Processing Dependency: php-common = 5.1.6-40.el5_9 for package: php-bcmath

-- Running transaction check

--- Package php-common.x86_64 0:5.1.6-40.el5_9 set to be updated

-- Processing Conflict: php53-common conflicts php-common

-- Finished Dependency Resolution

php53-common-5.3.3-13.el5_9.1.x86_64 from installed has depsolving problems

-- php53-common conflicts with php-common

Error: php53-common conflicts with php-common

You could try using --skip-broken to work around the problem

You could try running: package-cleanup --problems

package-cleanup --dupes

rpm -Va --nofiles --nodigest

就需要使用yum update 之后再yum install php53-bcmath就好了

顺便了解了一下,bcmath这个函数是PHP数学扩展中的一个。可以使用 bcscale() 来设置全局默认的小数位数,具体用法如下:

复制代码 代码如下:string bcmul ( string $left_operand , string $right_operand [, int $scale ] )

例子:

?php echo bcmul('1.34747474747', '35', 3); // 47.161 echo bcmul('2', '4'); // 8 ?

此函数在php.ini中的选项:

复制代码 代码如下:

[bcmath]

; Number of decimal digits for all bcmath functions.

;

bcmath.scale = 0

二、syntax error, unexpected T_STRING, expecting……

严重语法错误,例如syntax error, unexpected T_STRING, expecting ',' or ';' in F:\phpnow\htdocs\index.php on line 4

后边标着行号,自己去检查那一行的标点就行

如果是 第三行 echo 1 后边没加;,报错会报 on line 4 ,on line 4,就是第四行

实例讲解:

其实,这是一个非常容易解决掉的问题。在我看来,似曾相识,呵呵,最近学JavaScript可是学会了使用var声明变量。

其实,在PHP中根本不需要使用var声明的,但是当一个变量作为一个类的成员变量的时候,使用var还是没有问题的。

在外部使用var就报错Parse error: syntax error, unexpected T_VAR in...,例如我的出错信息:

Parse error: syntax error, unexpected T_VAR in D:\Apache2.2\htdocs\shirdrn\page\p2\pageUtil.inc on line 34

我在测试:在一个类的内部,使用一个自己定义的类对象作为这个类的成员时,出错了。

Address类对应的address.inc代码:

?php class Address { var $road; function Address(){} function setRoad($road){ $this-road = $road; } } ?

Person类及其测试代码为person.php如下:

?php require("address.inc"); class Person { var $name; var $address; function Person(){ } function display(){ echo "Name : ".$this-name."BR"; echo "Road : ".$this-address-road."BR"; } } var $p = new Person(); $p-address = new Address(); $p-address-setRoad("Chagnchun Road"); $p-name = "Shirdrn"; $p-display(); ?

测试输出现异常:

Parse error: syntax error, unexpected T_VAR in D:\Apache2.2\htdocs\shirdrn\page\p2\pageUtil.inc on line 34

就是因为在person.php代码中使用var声明变量,PHP中是不能这样的,只要使用“$”符号起始就表示这个字符后面的是一个PHP变量。

呵呵:-)

其它网友的补充方法:

问题解决:syntax error, unexpected T_STRING, expecting T_OLD_FUNCTION or T_FUNCTION or T_VAR or 前两天开始自己php之旅,做一个很普通的网站,结果我们的php是5.0版本,服务器是4.0版本,纳闷死咯。 昨天忙了一天,今天早上一来,在一篇文章发现了,解决方法。Parse error: syntax error, unexpected T_STRING, expecting T_OLD_FUNCTION or T_FUNCTION or T_VAR or '}' ,如果有“public”,就将“public”去掉。就不会出错,如果“public” 是定义变量的话,将“public” 改为“var”。

三、Parse error: syntax error, unexpected T_VARIABLE in XXX.php on line XXX

这条语句是PHP常见的报错,一般是在XXX行的上一行,或者是XXX行,缺少分号。或者在双引号中使用双引号,且没有转义等等。

解决方法:找到XXX.php的XXX行,按照上面的分析,找到自己的错误,改正即可。

贴士:作为编程人员,要做到代码严谨,思维清晰,并且细心。人非圣贤孰能无过,但尽量避免这些因为粗心出现的错误,这样才能成为合格的程序员。

四、Parse error: syntax error, unexpected 'X' in XXX.php on line XXX

这条语句依然是PHP常见的报错,报错原因是在XXX.php的XXX行,出现了PHP无法识别的字符。常常是因为function,if等需要‘{'、‘}'的地方没有闭合,或者在编程的时候,不小心在‘;'的后面误打了几个字符。

解决方法:找到XXX.php的XXX行,删除多出的字符,添加缺少的字符即可。

五、syntax error, unexpected $end

逻辑忘了闭合 这个报错还有个特征,他会提示你最后一行代码报错,譬如你一共30行,他就告诉你 on line 30,这时候你别检查第三十行,你要把30行挨个,检查一遍,看看哪个标签没闭合。

一共3000行,他就告诉你 on line 3000,这时候你别检查这3000行了,如果你程序排版很乱,在3000行里找哪个括号是个很麻烦的事……我教你一招:ctrl+a ctrl+d alt+f4

好了,你现在可以重写了。

另一种思路:

Parse error: syntax error, unexpected $end in script.php on line xx

调试了一会后发现产生错误的行是文件中间某行

//$str .= "?\n";

想起来了 PHP 解释器允许的结尾标记那行还可以用单行注释,即 //$str .= "?\n"; 被解释成结尾标记前有注释,注释的内容是 //$str .= ",而 ? 后面的 \n"; 会被解释作 PHP 块外的内容按 HTML 输出出去!结果是给 $str .= "?\n"; 这行添加 // 成注释后,反而多了个 ? 的结束标记,造成原来真正的结束标记成了意料之外的(unexpected)了。

解决办法就是直接删掉这一行即可。

PHP 开始和结束标记所在行别写其它东西,是个好习惯。

六、Notice:Undefined varialbe:……

这是一个比较常见的错误,解决方法:error_reporting调整错误级别,

以上就是为大家分享的PHP常见的6个错误提示,给大家提供了大概的解决思路和方向,希望对大家的学习有所帮助。

PHP语法错误,咋整

Warning: mysql_close(): 2 is not a valid MySQL-Link resource in /usr/local/apache2/htdocs/mysql.php on line 15

代码第15行错误,mysql_close 传递进来的参数不是一个有效的 MYSQL 连接资源。

可能的原因是 MYSQL 连接错误或者已经关闭。

PHP语法错误

这个是模板文件编译后出现的语法错误,可以检查模板文件有没有写法问题。

可以按提示的

D:\phpStudy\WWW\My\Runtime\Cache\Home\8dc23e4b59412263cf65a712c686eabb.php  LINE: 513

这个文件和行,对应找出模板文件出问题的地方,再检查修复