我不明白为什么以下输出变量:
class Sample(){
public $query;
function __construct() {
$test = new \SolrQuery();
echo $test::FACET_SORT_INDEX;
exit();
}
}
但这给了我一个致命的错误:
[解析错误:语法错误,意外T_PAAMAYIM_NEKUDOTAYIM, 期待','或';']
class Sample(){
public $query;
function __construct() {
$this->query = new \SolrQuery();
echo $this->query::FACET_SORT_INDEX;
}
}
我猜它与变量的权限有关?我能做些什么来解决它吗?
答案 0 :(得分:4)
鉴于此:
class foo {
static public $foo = 'foo!';
}
class bar {
public $query;
function t1() {
$test = new foo();
echo $test::foo;
}
function t2() {
$this->query = new foo();
echo $this->query::foo;
}
function t3() {
echo foo::$foo;
}
}
$x = new bar();
$x->t1(); /// dies with "undefined class constant 'foo'
$x->t2(); /// dies with unexpected T_PAAMAYIM_NEKUDOTAYIM
$x->t3(); // works, prints "foo!"
基本上,您尝试使用错误的语法访问静态类属性。
答案 1 :(得分:1)
尝试\SolrQuery::FACET_SORT_INDEX;
这是一个不是对象的常量