PHP中的Division by zero報(bào)錯(cuò)處理技巧_第1頁(yè)
PHP中的Division by zero報(bào)錯(cuò)處理技巧_第2頁(yè)
PHP中的Division by zero報(bào)錯(cuò)處理技巧_第3頁(yè)
PHP中的Division by zero報(bào)錯(cuò)處理技巧_第4頁(yè)
PHP中的Division by zero報(bào)錯(cuò)處理技巧_第5頁(yè)
已閱讀5頁(yè),還剩1頁(yè)未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡(jiǎn)介

本文格式為Word版,下載可任意編輯——PHP中的Divisionbyzero報(bào)錯(cuò)處理技巧ecshop片面模板使用時(shí),會(huì)展現(xiàn)“Warning:Divisionbyzeroinxxxxxlib_goods.php”錯(cuò)誤,那么怎么處理呢?來(lái)看看我的共享吧!

錯(cuò)誤提示

在開啟某些產(chǎn)品分類或者某些產(chǎn)品頁(yè)面的時(shí)候,特定語(yǔ)言才報(bào)錯(cuò)。

錯(cuò)誤是:Divisionbyzeroinxxx

錯(cuò)誤理由

這個(gè)錯(cuò)誤的理由,就是運(yùn)算的過(guò)程中,被除數(shù)是0。上過(guò)小學(xué)的都知道“0是不成以作為被除數(shù)的”。

解決思路

1:判斷值為0的時(shí)候跳過(guò)運(yùn)算;

2:假設(shè)非要賦值給一個(gè)變量,可以做判斷后賦固定值或者輸出false,后面代碼判斷假設(shè)變量是true才使用它舉行下一步代碼的實(shí)現(xiàn)。

DEBUGING

解決問(wèn)題之前,先來(lái)個(gè)兩個(gè)小學(xué)識(shí)點(diǎn):

1、在opencart中,vqmod的優(yōu)先等級(jí)是最高的;

2、哪里報(bào)錯(cuò)不確定錯(cuò)誤就在哪里,但是首先看的還是報(bào)錯(cuò)的地方。

從上圖中,我們找到了vqcache下對(duì)應(yīng)的文件對(duì)應(yīng)行數(shù),察覺(jué)如下代碼:

//Cosyonecustomcodestarts

iffloat$result[special]

$sales_percantage=$this-tax-calculate$result[price],$result[tax_class_id],$this-config-getconfig_tax-$this-tax-calculate$result[special],$result[tax_class_id],$this-config-getconfig_tax/$this-tax-calculate$result[price],$result[tax_class_id],$this-config-getconfig_tax/100;

else

$sales_percantage=false;

從這個(gè)代碼可以看出有若干個(gè)參數(shù),我們留意“/”后面的被除數(shù)就好,這里被除數(shù)有兩個(gè)地方,其中其次個(gè)是正整數(shù)100,可以擯棄。那么問(wèn)題就在下面這段代碼中:

$this-tax-calculate$result[price],$result[tax_class_id],$this-config-getconfig_tax

我們從上面這個(gè)方法里看到三個(gè)參數(shù),分別用print_r打印了下參數(shù)的值,結(jié)果察覺(jué)其次個(gè)參數(shù)“$result[tax_class_id]”是“000000”。很鮮明,假設(shè)這個(gè)是0,我們就要讓:

$sales_percantage=false;

所以我們這里的代碼要修改為:

//Cosyonecustomcodestarts

iffloat$result[special]$result[tax_class_id]

$sales_percantage=$this-tax-calculate$result[price],$result[tax_class_id],$this-config-getconfig_tax-$this-tax-calculate$result[special],$result[tax_class_id],$this-config-getconfig_tax/$this-tax-calculate$result[price],$result[tax_class_id],$this-config-getconfig_tax/100;

else

$sales_percantage=false;

也就是,加多一個(gè)判斷依據(jù),務(wù)必得志兩個(gè)值都存在的前提下,才舉行如下運(yùn)算,否那么是false。

修改代碼,保存代碼,上傳文件,刷新頁(yè)面,警告提示語(yǔ)消散,over。

但是,終究我們改的是緩存文件,真剛要修改好代碼,我們還是要把代碼寫到核心文件或者插件的文件里。

修改源

首先,我們從三個(gè)地方查找,分別是:

核心文件:/catalog/controller/product/category.php;

vqmod:/vqmod/xml/*.xml;

ocmod:上傳插件的ocmod.xml文件備份,或者數(shù)據(jù)庫(kù)查看:oc_modification表xml字段;

雖然vqmod的優(yōu)先等級(jí)高于ocmod,但是其實(shí)先從對(duì)比便當(dāng)?shù)牡胤秸移鹨彩强梢缘?。有個(gè)方法可以擯棄是否ocmod。假設(shè)是ocmod插件的,緩存文件名必定有“system_storage_modification”。

但是也由于vqmod優(yōu)先等級(jí)最高,所以被ocmod緩存的文件的文件名也可能有這個(gè)字樣,所以排查的依次如上所述。

核心文件的話,編輯器開啟ctrl+F舉行關(guān)鍵字查找修改。

假設(shè)是vqmod的xml,要么擯棄法擯棄不成能是的文件,然后從可能是的文件里查找。假設(shè)文件太多就用notepad++等編輯器或者IDE工具,可以舉行目次探尋,從中找到文件。

假設(shè)是ocmod,那么用MYSQL工具舉行字段like%...%探尋,或者用SQL語(yǔ)句:

SELECT*FROM`oc_modification`WHERE`xml`like%關(guān)鍵代碼%

由于這里存的數(shù)據(jù)被轉(zhuǎn)義過(guò),所以探尋的內(nèi)容不要帶有換行之類的,抓取對(duì)比有特點(diǎn)的代碼舉行查找和修改。修改的時(shí)候留神轉(zhuǎn)義的影響哈。當(dāng)然現(xiàn)在好多MYSQL管理工具這一點(diǎn)做的還是挺好的。建議最好修改插件的ocmod.xml文件,然后重新上傳一次。平日插件裝了后自己留備份還是有必要的。假設(shè)沒(méi)文件就導(dǎo)出備份再修改。

擴(kuò)展

上面的例如代碼剛好是剛遇到的,所以拿來(lái)舉例子。授人以魚不如授人以漁,有的小問(wèn)題大家花錢又心疼,想自己折騰也未嘗不成以,以后還是會(huì)供給更多這類對(duì)比初級(jí)的解決方案給大家。下面另外舉例子:

$a=0;

$value=$key/$a;

//這樣可能會(huì)提示警告語(yǔ)

if$a

$value=$key/$a;

else

$value=false;

//對(duì)$value舉行賦值計(jì)算結(jié)果或者false,也可以賦值預(yù)設(shè)數(shù)字,以便后面舉行引用。

上面的方法只是一些例如和排錯(cuò)的技巧,一種思路,概括處境概括分析,但是解決問(wèn)題要有明顯的思路哈。學(xué)會(huì)一種技巧少走一些彎路,少花一些錢還是可以

溫馨提示

  • 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。

最新文檔

評(píng)論

0/150

提交評(píng)論