溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點(diǎn)擊 登錄注冊 即表示同意《億速云用戶服務(wù)條款》

升級PHP版本后代碼無法使用怎么辦

發(fā)布時(shí)間:2020-07-03 11:32:00 來源:億速云 閱讀:179 作者:Leah 欄目:編程語言

升級PHP版本后代碼無法使用怎么辦?針對這個(gè)問題,這篇文章詳細(xì)介紹了相對應(yīng)的分析和解答,希望可以幫助更多想解決這個(gè)問題的小伙伴找到更簡單易行的方法。

php版本升級后,代碼無法使用多是因?yàn)榘姹局g的差異造成的不兼容,比如高版本的語法發(fā)生了改動(dòng),棄用了某些函數(shù),都會(huì)造成程序運(yùn)行錯(cuò)誤,想要解決這些問題,只能一步步的調(diào)試程序,下面介紹下怎樣調(diào)試程序,讓代碼兼容我們的高版本的php吧。

1 打印輸出

使用echo、var_dump 、print_r等方法在需要調(diào)試地方進(jìn)行打印輸出,通過輸出特定變量的值可以判斷程序執(zhí)行是否正確。

2 使用debug_backtrace 函數(shù)打印調(diào)用棧信息:

debug_print_backtrace();exit;
#0  cli_rakuten->getOrders(1)
#1  call_user_func_array(Array ([0] => cli_rakuten Object (),[1] => getOrders), Array ([0] => 1)) called at [/data/project/***/include/of/of.php:79]
#2  of::cliDispatch(cli_rakuten, getOrders, 1, Array ([0] => 1)) called at [/data/project/***/cli.php:17]

3 使用xdebug調(diào)試代碼

Xdebug是一個(gè)開放源代碼的PHP程序調(diào)試器(即一個(gè)Debug工具),可以用來跟蹤,調(diào)試和分析PHP程序的運(yùn)行狀況。

配置好phpstorm+xdebug后,可很方便的對代碼進(jìn)行斷點(diǎn)調(diào)試。

除了生成調(diào)用棧信息外,xdebug還能生成性能分析報(bào)告,windows上可使用WinCacheGrind來查看性能分析報(bào)告。

4 使用xhprof調(diào)試分析代碼

XHProf是facebook 開發(fā)的一個(gè)測試php性能的擴(kuò)展。

對于本地開發(fā)環(huán)境來說,進(jìn)行性能分析xdebug是夠用了,但如果是線上環(huán)境的話,xdebug消耗較大,配置也不夠靈活,因此線上環(huán)境建議使用xhprof進(jìn)行PHP性能追蹤及分析。

在代碼中加入生成xhprof分析報(bào)告代碼:

xhprof_enable(
        XHPROF_FLAGS_MEMORY|XHPROF_FLAGS_CPU,
        [
            'ignored_functions'    => [
                'call_user_func',
                'call_user_func_array'
            ]
        ]);
 
//這里是業(yè)務(wù)代碼
//...
 
 
$xhprofData = xhprof_disable();
require '/data/soft/xhprof/xhprof_lib/utils/xhprof_lib.php';
require '/data/soft/xhprof/xhprof_lib/utils/xhprof_runs.php';
$xhprofRuns = new XHProfRuns_Default();
$runId = $xhprofRuns->save_run($xhprofData, 'xhprof_test');
echo 'http://192.168.52.129:8888/xhprof_html/index.php?run=' . $runId . '&source=xhprof_test'.PHP_EOL;

5 根據(jù)php錯(cuò)誤日志進(jìn)行調(diào)試

log日志,通常是系統(tǒng)或軟件、應(yīng)用的運(yùn)行記錄。通過log的分析,可以方便用戶了解系統(tǒng)或軟件、應(yīng)用的運(yùn)行情況;如果你的應(yīng)用log足夠豐富,也可以分析以往用戶的操作行為、類型喜好、地域分布或其他更多信息;如果一個(gè)應(yīng)用的log同時(shí)也分了多個(gè)級別,那么可以很輕易地分析得到該應(yīng)用的健康狀況,及時(shí)發(fā)現(xiàn)問題并快速定位、解決問題,補(bǔ)救損失。

php錯(cuò)誤日志可在配置文件php.ini中設(shè)置:

log_errors = On
error_log = /var/log/php-fpm/php_errors.log

查到了錯(cuò)誤原因,我們就可以對程序做出相應(yīng)的修改了。

關(guān)于升級PHP版本后代碼無法使用怎么辦問題的解答就分享到這里了,希望以上內(nèi)容可以對大家有一定的幫助,如果你還有很多疑惑沒有解開,可以關(guān)注億速云行業(yè)資訊頻道了解更多相關(guān)知識(shí)。

向AI問一下細(xì)節(jié)

免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點(diǎn)不代表本網(wǎng)站立場,如果涉及侵權(quán)請聯(lián)系站長郵箱:is@yisu.com進(jìn)行舉報(bào),并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。

php
AI