欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

PHP常見的6個(gè)錯(cuò)誤提示及解決方法

 更新時(shí)間:2016年07月07日 15:42:36   投稿:lijiao  
自學(xué)黨們?cè)谧詫W(xué)php的時(shí)候,經(jīng)常會(huì)發(fā)生一些小錯(cuò)誤,這篇文章主要介紹了PHP常見的6個(gè)錯(cuò)誤提示及解決方法,感興趣的小伙伴們可以參考一下

在php開發(fā)過程中,由于不知道向誰求助而心慌意亂地判斷以為自己不適合學(xué)php。其實(shí)錯(cuò)誤在每個(gè)人學(xué)習(xí)過程中都會(huì)碰到的,千萬不要妄自菲薄。很多錯(cuò)誤在報(bào)錯(cuò)的代碼提示中已經(jīng)告訴我們了,仔細(xì)看,不會(huì)就百度?,F(xiàn)總結(jié)一些常見的php錯(cuò)誤,以共享php新人。
Php常見錯(cuò)誤提示

一、Fatal error: Call to undefined function……
函數(shù)不存在,可能的原因
1、系統(tǒng)不存在這個(gè)函數(shù)且你也沒自定義
2、有人會(huì)問,我在別的機(jī)器上就不報(bào)錯(cuò)。那是因?yàn)榄h(huán)境不同,這個(gè)函數(shù)在本機(jī)沒開,怎么開?你百度函數(shù)名字,就能查到這個(gè)函數(shù)屬于哪個(gè)dll,去php.ini里開啟。

實(shí)例講解:PHP FATAL ERROR: CALL TO UNDEFINED FUNCTION BCMUL()解決辦法

在一臺(tái)處理網(wǎng)絡(luò)支付的服務(wù)器遷移的時(shí)候,發(fā)現(xiàn)不能支付。

PHP環(huán)境:
PHP版本為5.3.3
系統(tǒng)為Red Hat 4.1.2-54
查看apache的錯(cuò)誤日志,發(fā)現(xiàn)是加密文件中一個(gè)函數(shù)bcmul()報(bào)錯(cuò):

復(fù)制代碼 代碼如下:
PHP Fatal error: Call to undefined function bcmul() in /php_rsa.php on line xxx

解決辦法:
使用如下命令:

復(fù)制代碼 代碼如下:
yum install php-bcmath

就安裝好了。

如果出現(xiàn)下面這種情況:

復(fù)制代碼 代碼如下:

Loaded plugins: fastestmirror
Loading mirror speeds from cached hostfile
* base: mirrors.yun-idc.com
* extras: mirrors.yun-idc.com
* rpmforge: ftp.riken.jp
* 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這個(gè)函數(shù)是PHP數(shù)學(xué)擴(kuò)展中的一個(gè)。可以使用 bcscale() 來設(shè)置全局默認(rèn)的小數(shù)位數(shù),具體用法如下:

復(fù)制代碼 代碼如下:
string bcmul ( string $left_operand , string $right_operand [, int $scale ] )

例子:

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

此函數(shù)在php.ini中的選項(xiàng):

復(fù)制代碼 代碼如下:

[bcmath]
; Number of decimal digits for all bcmath functions.
; http://www.php.net/manual/en/bc.configuration.php#ini.bcmath.scale
bcmath.scale = 0

二、syntax error, unexpected T_STRING, expecting……
嚴(yán)重語法錯(cuò)誤,例如syntax error, unexpected T_STRING, expecting ',' or ';' in F:\phpnow\htdocs\index.php on line 4
后邊標(biāo)著行號(hào),自己去檢查那一行的標(biāo)點(diǎn)就行

如果是 第三行 echo 1 后邊沒加;,報(bào)錯(cuò)會(huì)報(bào) on line 4 ,on line 4,就是第四行

實(shí)例講解:

其實(shí),這是一個(gè)非常容易解決掉的問題。在我看來,似曾相識(shí),呵呵,最近學(xué)JavaScript可是學(xué)會(huì)了使用var聲明變量。

其實(shí),在PHP中根本不需要使用var聲明的,但是當(dāng)一個(gè)變量作為一個(gè)類的成員變量的時(shí)候,使用var還是沒有問題的。

在外部使用var就報(bào)錯(cuò)Parse error: syntax error, unexpected T_VAR in...,例如我的出錯(cuò)信息:

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

我在測(cè)試:在一個(gè)類的內(nèi)部,使用一個(gè)自己定義的類對(duì)象作為這個(gè)類的成員時(shí),出錯(cuò)了。

Address類對(duì)應(yīng)的address.inc代碼:

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

Person類及其測(cè)試代碼為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();
?>


測(cè)試輸出現(xiàn)異常:

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

就是因?yàn)樵趐erson.php代碼中使用var聲明變量,PHP中是不能這樣的,只要使用“$”符號(hào)起始就表示這個(gè)字符后面的是一個(gè)PHP變量。
呵呵:-)
其它網(wǎng)友的補(bǔ)充方法:
問題解決:syntax error, unexpected T_STRING, expecting T_OLD_FUNCTION or T_FUNCTION or T_VAR or 前兩天開始自己php之旅,做一個(gè)很普通的網(wǎng)站,結(jié)果我們的php是5.0版本,服務(wù)器是4.0版本,納悶死咯。 昨天忙了一天,今天早上一來,在一篇文章發(fā)現(xiàn)了,解決方法。Parse error: syntax error, unexpected T_STRING, expecting T_OLD_FUNCTION or T_FUNCTION or T_VAR or '}' ,如果有“public”,就將“public”去掉。就不會(huì)出錯(cuò),如果“public” 是定義變量的話,將“public” 改為“var”。

三、Parse error: syntax error, unexpected T_VARIABLE in XXX.php on line XXX
這條語句是PHP常見的報(bào)錯(cuò),一般是在XXX行的上一行,或者是XXX行,缺少分號(hào)?;蛘咴陔p引號(hào)中使用雙引號(hào),且沒有轉(zhuǎn)義等等。
解決方法:找到XXX.php的XXX行,按照上面的分析,找到自己的錯(cuò)誤,改正即可。
貼士:作為編程人員,要做到代碼嚴(yán)謹(jǐn),思維清晰,并且細(xì)心。人非圣賢孰能無過,但盡量避免這些因?yàn)榇中某霈F(xiàn)的錯(cuò)誤,這樣才能成為合格的程序員。

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

這條語句依然是PHP常見的報(bào)錯(cuò),報(bào)錯(cuò)原因是在XXX.php的XXX行,出現(xiàn)了PHP無法識(shí)別的字符。常常是因?yàn)閒unction,if等需要‘{'、‘}'的地方?jīng)]有閉合,或者在編程的時(shí)候,不小心在‘;'的后面誤打了幾個(gè)字符。
解決方法:找到XXX.php的XXX行,刪除多出的字符,添加缺少的字符即可。

五、syntax error, unexpected $end 
邏輯忘了閉合  這個(gè)報(bào)錯(cuò)還有個(gè)特征,他會(huì)提示你最后一行代碼報(bào)錯(cuò),譬如你一共30行,他就告訴你 on line 30,這時(shí)候你別檢查第三十行,你要把30行挨個(gè),檢查一遍,看看哪個(gè)標(biāo)簽沒閉合。
一共3000行,他就告訴你 on line 3000,這時(shí)候你別檢查這3000行了,如果你程序排版很亂,在3000行里找哪個(gè)括號(hào)是個(gè)很麻煩的事……我教你一招:ctrl+a ctrl+d alt+f4
好了,你現(xiàn)在可以重寫了。

另一種思路:

Parse error: syntax error, unexpected $end in script.php on line xx
調(diào)試了一會(huì)后發(fā)現(xiàn)產(chǎn)生錯(cuò)誤的行是文件中間某行
//$str .= "?>\n";
想起來了 PHP 解釋器允許的結(jié)尾標(biāo)記那行還可以用單行注釋,即 //$str .= "?>\n"; 被解釋成結(jié)尾標(biāo)記前有注釋,注釋的內(nèi)容是 //$str .= ",而 ?> 后面的 \n"; 會(huì)被解釋作 PHP 塊外的內(nèi)容按 HTML 輸出出去!結(jié)果是給 $str .= "?>\n"; 這行添加 // 成注釋后,反而多了個(gè) ?> 的結(jié)束標(biāo)記,造成原來真正的結(jié)束標(biāo)記成了意料之外的(unexpected)了。
解決辦法就是直接刪掉這一行即可。
PHP 開始和結(jié)束標(biāo)記所在行別寫其它東西,是個(gè)好習(xí)慣。

六、Notice:Undefined varialbe:……
這是一個(gè)比較常見的錯(cuò)誤,解決方法:error_reporting調(diào)整錯(cuò)誤級(jí)別,

以上就是為大家分享的PHP常見的6個(gè)錯(cuò)誤提示,給大家提供了大概的解決思路和方向,希望對(duì)大家的學(xué)習(xí)有所幫助。

相關(guān)文章

最新評(píng)論