我试图在静态配置数组中存储一些验证函数。在数组中存储函数似乎可行,但是,当我在类中放入相同的代码时,它会失败。有谁知道发生了什么事?
$functions = array(
'function1' => function($echo) {
echo $echo;
}
);
$functions['function1']("hello world");
// Works
//----------
class A {
public static $functions = array(
'function1' => function($echo) {
echo $echo;
}
);
}
A::$functions['function1']("hello world");
//Parse error: syntax error, unexpected 'function' (T_FUNCTION)
答案 0 :(得分:2)
当我使用PHP 7运行它(PHP 5也会出错)时,我收到的错误基本上是在不允许实例化类变量时表达式。这就是它的工作原理:
from lxml import etree
data = open(r'C:\Users\abc\Desktop\input-xsl.xsl')
xslt_content = data.read()
xslt_root = etree.XML(xslt_content)
dom = etree.parse(r'C:\Users\abc\Desktop\input-xml.xml')
transform = etree.XSLT(xslt_root)
result = transform(dom)
print(result)
http://php.net/manual/en/language.oop5.properties.php
类成员变量称为“属性”。你也可以看到它们 引用使用其他术语,如“属性”或“字段”,但 出于本参考的目的,我们将使用“属性”。他们是 使用关键字public,protected或private之一定义, 然后是正常的变量声明。这个声明可能会 包括初始化,但这个初始化必须是一个常量 value - 也就是说,它必须能够在编译时进行评估 不得依赖于运行时信息才能进行评估。