繁体   English   中英

为了使用应用程序版本,PHP中的编译器指令是否可以替代?

[英]Is there an alternative for compiler directives in PHP in order to use app version?

事情是这样的,我有一个正在运行的应用程序,我的客户一直在要求我随着时间的推移添加功能。 现在他还没有实现我已经开发的所有功能,但是他想实现最近开发的一个功能。 问题是我制作的应用程序版本之间可能存在一些不兼容问题。

我想知道是否可以在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文件并向其中添加常量。

setting.php

// Valid constant names
define("VERSION",     "1");

class.php

include('settings.php')

if (defined('VERSION') && VERSION == "1") {
    //run code
}

PHP不是编译语言。 就像它的客户端同级对象(HTML等)一样,每次必须生成页面时,每个文件都会单独进行评估。 因此,在文件的其余部分之前处理文件中某些内容的概念迅速失去了价值。

也就是说,在此过程之前可以设置一些变量,并且在整个过程中保持不变,这些变量php.ini中 根据字面定义,这些是预处理程序指令。 但是,我知道它们不是您想要的。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM