首先獲取類的常量肯定是不能用get_defined_constants()的,這個函式會返回一堆常量:
<?php
class Foo
{
public $a = "a";
protected $b = "b";
const NONE = 0;
const REQUEST = 100;
const AUTH = 101;
public function hi($name)
echo "Hi, $name";
}
$foo = new Foo();
$reflector = new ReflectionClass($foo);
var_dump($reflector->getConstants());
透過上面的程式碼,能發現就是使用了PHP的反射嘛,沒錯,反射就是那麼強大,你不會還不知道吧^^
如果只想獲取指定的常量,程式碼可以如下寫:
$reflector->getConstant("REQUEST"); // 100
判斷類是否含有某個常量:
$reflector->hasConstant("REQUEST"); // true
$reflector->hasConstant("TEST"); // false
看到沒有,反射是如此的強大,這是官方文件,趕緊去食用吧:
https://www.php.net/manual/zh/class.reflection.php
首先獲取類的常量肯定是不能用get_defined_constants()的,這個函式會返回一堆常量:
正確解決法如下:<?php
class Foo
{
public $a = "a";
protected $b = "b";
const NONE = 0;
const REQUEST = 100;
const AUTH = 101;
public function hi($name)
{
echo "Hi, $name";
}
}
$foo = new Foo();
$reflector = new ReflectionClass($foo);
var_dump($reflector->getConstants());
透過上面的程式碼,能發現就是使用了PHP的反射嘛,沒錯,反射就是那麼強大,你不會還不知道吧^^
如果只想獲取指定的常量,程式碼可以如下寫:
$reflector->getConstant("REQUEST"); // 100
判斷類是否含有某個常量:
$reflector->hasConstant("REQUEST"); // true
$reflector->hasConstant("TEST"); // false
看到沒有,反射是如此的強大,這是官方文件,趕緊去食用吧:
https://www.php.net/manual/zh/class.reflection.php