事情是这样的,我有一个正在运行的应用程序,我的客户一直要求我随着时间的推移添加功能。现在他还没有实现我开发的所有功能,但他想实现最近开发的一个功能。问题是我制作的应用程序版本之间可能存在一些不兼容问题。
我想知道是否可以在 php 中的类的方法中添加某种版本指令,并以某种方式执行与 Web 应用程序版本匹配的指令?
我将不胜感激您能给我的任何帮助。
您可以从版本常量 PHP_VERSION 获取 PHP 当前运行的版本并使用 version_compare,这可能会帮助您解决您正在尝试做的事情:http: //php.net/manual/en/function.version-compare.php
您可以设置自己的版本,然后像这样声明适当的类(您的代码需要知道该类的哪个副本正在运行:
define("APPLICATION_VERSION", "1.23");
define("APPLICATION_VERSION_MAJOR", "1.");
define("APPLICATION_VERSION_MINOR", "23");
if (APPLICATION_VERSION_MAJOR == "1") {
//version 1 class declaration here
class hello {}
} else {
//not version 1 class declaration here
class hello {}
}
创建一个 settings.php 文件并向其中添加常量。
设置.php
// Valid constant names
define("VERSION", "1");
类.php
include('settings.php')
if (defined('VERSION') && VERSION == "1") {
//run code
}
PHP 不是编译语言;就像它的客户端兄弟(HTML 等)一样,每次必须生成页面时,每个文件都会单独评估。因此,在文件的其余部分之前处理文件中的某些内容的概念迅速失去了它的价值。
也就是说,可以在此过程之前设置一些变量并在整个过程中保持不变,这些变量位于php.ini中。根据字面定义,这些是预处理器指令。但是,我知道它们不是您想要的。