教程集 www.jiaochengji.com
教程集 >  脚本编程  >  php  >  正文 PHP版本升级后代码无法使用

PHP版本升级后代码无法使用

发布时间:2020-06-13   编辑:jiaochengji.com
教程集为您提供PHP版本升级后代码无法使用等资源,欢迎您收藏本站,我们将为您提供最新的PHP版本升级后代码无法使用资源

PHP版本升级后代码无法使用

php版本升级后,代码无法使用多是因为版本之间的差异造成的不兼容,比如高版本的语法发生了改动,弃用了某些函数,都会造成程序运行错误,想要解决这些问题,只能一步步的调试程序,下面介绍下怎样调试程序,让代码兼容我们的高版本的php吧。

1 打印输出

使用echo、var_dump 、print_r等方法在需要调试地方进行打印输出,通过输出特定变量的值可以判断程序执行是否正确。

2 使用debug_backtrace 函数打印调用栈信息:

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调试代码

Xdebug是一个开放源代码的PHP程序调试器(即一个Debug工具),可以用来跟踪,调试和分析PHP程序的运行状况。

配置好phpstorm xdebug后,可很方便的对代码进行断点调试。

除了生成调用栈信息外,xdebug还能生成性能分析报告,windows上可使用WinCacheGrind来查看性能分析报告。

4 使用xhprof调试分析代码

XHProf是facebook 开发的一个测试php性能的扩展。

对于本地开发环境来说,进行性能分析xdebug是够用了,但如果是线上环境的话,xdebug消耗较大,配置也不够灵活,因此线上环境建议使用xhprof进行PHP性能追踪及分析。

在代码中加入生成xhprof分析报告代码:

xhprof_enable(
        XHPROF_FLAGS_MEMORY|XHPROF_FLAGS_CPU,
        [
            'ignored_functions'    => [
                'call_user_func',
                'call_user_func_array'
            ]
        ]);
 
//这里是业务代码
//...
 
 
$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 根据php错误日志进行调试

log日志,通常是系统或软件、应用的运行记录。通过log的分析,可以方便用户了解系统或软件、应用的运行情况;如果你的应用log足够丰富,也可以分析以往用户的操作行为、类型喜好、地域分布或其他更多信息;如果一个应用的log同时也分了多个级别,那么可以很轻易地分析得到该应用的健康状况,及时发现问题并快速定位、解决问题,补救损失。

php错误日志可在配置文件php.ini中设置:

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

查到了错误原因,我们就可以对程序做出相应的修改了。

更多PHP相关知识,请访问教程集!

以上就是PHP版本升级后代码无法使用的详细内容,更多请关注教程集其它相关文章!

  • 本文原创发布教程集,转载请注明出处,感谢您的尊重!
  • 您可能感兴趣的文章:
    qq飞车老版本无法升级新版本怎么办?qq飞车升级不了解决办法
    Windows7系统从7100RC升级到7600正式版
    解决DEDE5.6升级到DEDE5.7广告管理出错的问题
    PHP版本升级后代码无法使用
    redhat 5.5 升级python 到2.6.4
    php怎么打补丁
    Vista升级到Windows7系统后碰到VS2008问题的解决办法
    mac air升级OS X Mavericks(10.9)后finder用不 解决办法
    PHP5.3提示Fatal error: Undefined class constant MYSQL_ATTR_INIT_COMMAND
    在 macOS 下使用 PHP-version 切换 PHP 版本

    [关闭]
    ~ ~