《PHP實戰(zhàn):PHP常見的6個錯誤提示及解決方法》要點:
本文介紹了PHP實戰(zhàn):PHP常見的6個錯誤提示及解決方法,希望對您有用。如果有疑問,可以聯(lián)系我們。
在php開發(fā)過程中,由于不知道向誰求助而心慌意亂地判斷以為自己不適合學(xué)php.其實錯誤在每個人學(xué)習(xí)過程中都會碰到的,千萬不要妄自菲薄.很多錯誤在報錯的代碼提示中已經(jīng)告訴我們了,仔細(xì)看,不會就百度.現(xiàn)總結(jié)一些常見的php錯誤,以共享php新人.
Php常見錯誤提示
PHP實戰(zhàn)
一、Fatal error: Call to undefined function……
函數(shù)不存在,可能的原因:
1、系統(tǒng)不存在這個函數(shù)且你也沒自定義
2、有人會問,我在別的機(jī)器上就不報錯.那是因為環(huán)境不同,這個函數(shù)在本機(jī)沒開,怎么開?你百度函數(shù)名字,就能查到這個函數(shù)屬于哪個dll,去php.ini里開啟.PHP實戰(zhàn)
實例講解:PHP FATAL ERROR: CALL TO UNDEFINED FUNCTION BCMUL()解決辦法PHP實戰(zhàn)
在一臺處理網(wǎng)絡(luò)支付的服務(wù)器遷移的時候,發(fā)現(xiàn)不能支付.PHP實戰(zhàn)
PHP環(huán)境:
PHP版本為5.3.3
系統(tǒng)為Red Hat 4.1.2-54
查看apache的錯誤日志,發(fā)現(xiàn)是加密文件中一個函數(shù)bcmul()報錯:
PHP實戰(zhàn)
解決辦法:
使用如下命令:
PHP實戰(zhàn)
如果出現(xiàn)下面這種情況:PHP實戰(zhàn)
就需要使用yum update 之后再yum install php53-bcmath就好了PHP實戰(zhàn)
順便了解了一下,bcmath這個函數(shù)是PHP數(shù)學(xué)擴(kuò)展中的一個.可以使用 bcscale() 來設(shè)置全局默認(rèn)的小數(shù)位數(shù),具體用法如下:
PHP實戰(zhàn)
<?php echo bcmul('1.34747474747', '35', 3); // 47.161 echo bcmul('2', '4'); // 8 ?>
此函數(shù)在php.ini中的選項:
PHP實戰(zhàn)
二、syntax error, unexpected T_STRING, expecting……
嚴(yán)重語法錯誤,例如syntax error, unexpected T_STRING, expecting ',' or ';' in F:\phpnow\htdocs\index.php on line 4
后邊標(biāo)著行號,自己去檢查那一行的標(biāo)點就行PHP實戰(zhàn)
如果是 第三行 echo 1 后邊沒加;,報錯會報 on line 4 ,on line 4,就是第四行PHP實戰(zhàn)
實例講解:PHP實戰(zhàn)
其實,這是一個非常容易解決掉的問題.在我看來,似曾相識,呵呵,最近學(xué)JavaScript可是學(xué)會了使用var聲明變量.PHP實戰(zhàn)
其實,在PHP中根本不需要使用var聲明的,但是當(dāng)一個變量作為一個類的成員變量的時候,使用var還是沒有問題的.PHP實戰(zhàn)
在外部使用var就報錯Parse error: syntax error, unexpected T_VAR in...,例如我的出錯信息:PHP實戰(zhàn)
Parse error: syntax error, unexpected T_VAR in D:\Apache2.2\htdocs\shirdrn\page\p2\pageUtil.inc on line 34PHP實戰(zhàn)
我在測試:在一個類的內(nèi)部,使用一個自己定義的類對象作為這個類的成員時,出錯了.PHP實戰(zhàn)
Address類對應(yīng)的address.inc代碼:
PHP實戰(zhàn)
<?php class Address { var $road; function Address(){} function setRoad($road){ $this->road = $road; } } ?>
Person類及其測試代碼為person.php如下:PHP實戰(zhàn)
<?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(); ?>
測試輸出現(xiàn)異常:PHP實戰(zhàn)
Parse error: syntax error, unexpected T_VAR in D:\Apache2.2\htdocs\shirdrn\page\p2\pageUtil.inc on line 34PHP實戰(zhàn)
就是因為在person.php代碼中使用var聲明變量,PHP中是不能這樣的,只要使用“$”符號起始就表示這個字符后面的是一個PHP變量.
呵呵:-)
其它網(wǎng)友的補(bǔ)充方法:
問題解決:syntax error, unexpected T_STRING, expecting T_OLD_FUNCTION or T_FUNCTION or T_VAR or 前兩天開始自己php之旅,做一個很普通的網(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”去掉.就不會出錯,如果“public” 是定義變量的話,將“public” 改為“var”.PHP實戰(zhàn)
三、Parse error: syntax error, unexpected T_VARIABLE in XXX.php on line XXX
這條語句是PHP常見的報錯,一般是在XXX行的上一行,或者是XXX行,缺少分號.或者在雙引號中使用雙引號,且沒有轉(zhuǎn)義等等.
解決方法:找到XXX.php的XXX行,按照上面的分析,找到自己的錯誤,改正即可.
貼士:作為編程人員,要做到代碼嚴(yán)謹(jǐn),思維清晰,并且細(xì)心.人非圣賢孰能無過,但盡量避免這些因為粗心出現(xiàn)的錯誤,這樣才能成為合格的程序員.PHP實戰(zhàn)
四、Parse error: syntax error, unexpected 'X' in XXX.php on line XXXPHP實戰(zhàn)
這條語句依然是PHP常見的報錯,報錯原因是在XXX.php的XXX行,出現(xiàn)了PHP無法識別的字符.常常是因為function,if等需要‘{'、‘}'的地方?jīng)]有閉合,或者在編程的時候,不小心在‘;'的后面誤打了幾個字符.
解決方法:找到XXX.php的XXX行,刪除多出的字符,添加缺少的字符即可.PHP實戰(zhàn)
五、syntax error, unexpected $end?
邏輯忘了閉合? 這個報錯還有個特征,他會提示你最后一行代碼報錯,譬如你一共30行,他就告訴你 on line 30,這時候你別檢查第三十行,你要把30行挨個,檢查一遍,看看哪個標(biāo)簽沒閉合.
一共3000行,他就告訴你 on line 3000,這時候你別檢查這3000行了,如果你程序排版很亂,在3000行里找哪個括號是個很麻煩的事……我教你一招:ctrl+a ctrl+d alt+f4
好了,你現(xiàn)在可以重寫了.PHP實戰(zhàn)
另一種思路:PHP實戰(zhàn)
Parse error: syntax error, unexpected $end in script.php on line xx
調(diào)試了一會后發(fā)現(xiàn)產(chǎn)生錯誤的行是文件中間某行
//$str .= "?>\n";
想起來了 PHP 解釋器允許的結(jié)尾標(biāo)記那行還可以用單行注釋,即 //$str .= "?>\n"; 被解釋成結(jié)尾標(biāo)記前有注釋,注釋的內(nèi)容是 //$str .= ",而 ?> 后面的 \n"; 會被解釋作 PHP 塊外的內(nèi)容按 HTML 輸出出去!結(jié)果是給 $str .= "?>\n"; 這行添加 // 成注釋后,反而多了個 ?> 的結(jié)束標(biāo)記,造成原來真正的結(jié)束標(biāo)記成了意料之外的(unexpected)了.
解決辦法就是直接刪掉這一行即可.
PHP 開始和結(jié)束標(biāo)記所在行別寫其它東西,是個好習(xí)慣.PHP實戰(zhàn)
六、Notice:Undefined varialbe:……
這是一個比較常見的錯誤,解決方法:error_reporting調(diào)整錯誤級別,PHP實戰(zhàn)
以上就是為大家分享的PHP常見的6個錯誤提示,給大家提供了大概的解決思路和方向,希望對大家的學(xué)習(xí)有所幫助.PHP實戰(zhàn)
轉(zhuǎn)載請注明本頁網(wǎng)址:
http://www.fzlkiss.com/jiaocheng/5880.html