【问题标题】:how to run lower PHP version code (codeigniter) into higher php version如何将较低的 PHP 版本代码(codeigniter)运行到较高的 php 版本
【发布时间】:2019-05-13 10:06:14
【问题描述】:

我正在使用 CodeIgniter 版本 3.1.6。而且我正在使用两种类型的 PHP 版本编码。

第一个是 PHP 5.6.35,另一个是 7.1.16。我使用 PHP 7.1.16 来使用 Apache Solr。

但如果 PHP 版本为 7.1.16,则 PHP 5.6.35 版本支持编码不起作用。并且 PHP 7.1.16 编码在 PHP 5.6.35 中不起作用。

我无法更改 CodeIgniter 版本,因为总共 80% 的工作依赖于较低版本。同时我还需要PHP更高版本的编码。

现在我的问题是是否可以将较低的 PHP 版本代码运行到较高的 PHP 版本中。

【问题讨论】:

  • 如果您告诉我们您有哪些问题,我们可能会建议一些 polyfill。
  • 我的问题是我用 php 5.6.35 版本编写的完整项目。我想要 solr 搜索选项,但它在 php 版本 7.1.* 中运行良好。所以如果使用 php 5.6.35 solr 不支持。如果我使用 7.1.16,我的项目的主要部分无法正常工作。我现在能做什么?
  • “不工作”是一个非常宽泛的描述。为什么不修复任何不起作用的东西?那里有很好的升级说明,告诉您如何解决此类问题

标签: php codeigniter-3 backwards-compatibility


【解决方案1】:

您面临的问题是某些函数在较新版本的 PHP 中被简单地删除了。如果您确实需要使用更新的 PHP 版本,您唯一的选择是获取迁移指南并重写已弃用或已删除的函数。

你可以这样做:

if (!function_exists('removed_function')) {
    function removed_function($params)
    {
        // ...
    }
}

在下面链接指定的指南中,您可以找到更改的内容以及需要重写的功能。

PHP Migration guide

【讨论】:

  • 我想为我的查询添加一些点。如果我使用更高版本的 php,浏览器会显示此错误 ( ! ) Fatal error: Allowed memory size of 134217728 bytes exhausted (tried to allocate 4096 bytes) in C:\wamp\www\project_folder\system\database\drivers\mysqli\mysqli_driver.php on line 305
  • ( ! ) Fatal error: Allowed memory size of 134217728 bytes exhausted (tried to allocate 32768 bytes) in C:\wamp\www\project\system\core\Exceptions.php on line 1
  • 您是否尝试过使用ini_set('memory_limit', '256M'); 提高内存限制?
  • 不。我没试过。
  • 您可以在 PHP 中使用 ini_set 执行此操作,也可以编辑您的 php.ini 文件。其中任何一个都可以解决您的内存问题。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2014-09-27
  • 2021-02-03
  • 2011-05-21
  • 2014-08-12
  • 1970-01-01
相关资源
最近更新 更多