PHP 已定义方法 returns 错误值但存在静态变量
PHP defined method returns false value but static variable exists
谁能给我解释一下?
<?php
class SomeClass {
public static $SomeStatic = "SomeValue";
}
$class_name = "SomeClass";
var_dump("{$class_name}::$SomeStatic"); // shows "SomeClass::$SomeStatic"
var_dump($class_name::$SomeStatic); // shows "SomeValue"
var_dump(defined("{$class_name}::$SomeStatic")); // shows "bool(false)"
为什么定义的方法returns为假?认为第2个var_dumpreturns一个值。
静态变量不是常量,所以 defined
returns false
.
要检查 class 是否具有静态 属性,您可以使用此函数:
function has_static_property($class, $property_name)
{
$reflection = new ReflectionClass($class);
$static_properties = $reflection->getStaticProperties();
return array_key_exists($property_name, $static_properties);
}
有关 ReflectionClass
class and the getStaticProperties
方法的更多信息可以在 PHP 文档中找到。
谁能给我解释一下?
<?php
class SomeClass {
public static $SomeStatic = "SomeValue";
}
$class_name = "SomeClass";
var_dump("{$class_name}::$SomeStatic"); // shows "SomeClass::$SomeStatic"
var_dump($class_name::$SomeStatic); // shows "SomeValue"
var_dump(defined("{$class_name}::$SomeStatic")); // shows "bool(false)"
为什么定义的方法returns为假?认为第2个var_dumpreturns一个值。
静态变量不是常量,所以 defined
returns false
.
要检查 class 是否具有静态 属性,您可以使用此函数:
function has_static_property($class, $property_name)
{
$reflection = new ReflectionClass($class);
$static_properties = $reflection->getStaticProperties();
return array_key_exists($property_name, $static_properties);
}
有关 ReflectionClass
class and the getStaticProperties
方法的更多信息可以在 PHP 文档中找到。