PHP常见的6个错误提示及解决方法

前端之家收集整理的这篇文章主要介绍了PHP常见的6个错误提示及解决方法前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。

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

解决办法:

使用如下命令:
代码如下:
PHP-bcmath
就安装好了。

如果出现下面这种情况:

代码如下:
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() 来设置全局默认的小数位数,具体用法如下:

代码如下:
例子:

PHP;">

函数PHP.ini中的选项:

代码如下:
PHP.net/manual/en/bc.configuration.PHP#ini.bcmath.scale bcmath.scale = 0

二、Syntax error,unexpected T_STRING,expecting……

严重语法错误,例如Syntax error,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;"> road = $road; } } ?>

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

PHP;"> name."
"; echo "Road : ".$this->address->road."
"; } }

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

PHP代码中使用var声明变量,PHP中是不能这样的,只要使用“$”符号起始就表示这个字符后面的是一个PHP变量。 呵呵:-) 其它网友的补充方法: 问题解决:Syntax error,expecting T_OLD_FUNCTION or T_FUNCTION or T_VAR or 前两天开始自己PHP之旅,做一个很普通的网站,结果我们的PHP是5.0版本,服务器是4.0版本,纳闷死咯。 昨天忙了一天,今天早上一来,在一篇文章发现了,解决方法。Parse error: Syntax error,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行里找哪个括号是个很麻烦的事……我教你一招:

另一种思路:

Parse error: Syntax error,unexpected $end in script.PHP on line xx 调试了一会后发现产生错误的行是文件中间某行 PHP 解释器允许的结尾标记那行还可以用单行注释,即 //$str .= "?>\n"; 被解释成结尾标记前有注释,注释的内容是 //$str .= ",而 ?> 后面的 \n"; 会被解释作 PHP 块外的内容按 HTML 输出出去!结果是给 $str .= "?>\n"; 这行添加 // 成注释后,反而多了个 ?> 的结束标记,造成原来真正的结束标记成了意料之外的(unexpected)了。 解决办法就是直接删掉这一行即可。 PHP 开始和结束标记所在行别写其它东西,是个好习惯。

六、Notice:Undefined varialbe:……

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

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

猜你在找的PHP相关文章