我有一点PHP必须生成一个脚本.部分内容非常静态,但数据是即时生成的.我曾经在另一种语言中遇到过类似的问题并使用不断的替代品来解决它.
我正在尝试做什么:
interface IConstants {
const SUBSTITUTE = '!substitute';
const FULL_STRING = 'var data = "' . self::SUBSTITUTE . '";';
}
class Util {
public static function replace($haystack, $needle, $replace) {
// implementation
}
}
class SampleClass {
public function getScript() {
$someData = $this->getData();
return Util::replace(IConstants::FULL_STRING, IConstants::SUBSTITUTE, $someData);
}
public function getData() {
// generate $someData
return $someData;
}
}
这个设计是否被PHP接受?如果是,我将如何实施它,如果不是,那么什么是合适的替代方案?
解决方法:
在5.6之前的PHP版本中,您无法执行此操作.在那些版本的PHP中,从constituant部分构建常量的唯一方法是使用define().我必须仔细查看,但我认为你不能使用define()来定义类/接口常量.
从PHP 5.6开始,您将能够定义这样的常量,但前提是它们是根据其他常量定义的.
标签:php,const,design-patterns
来源: https://codeday.me/bug/20190830/1768849.html