<?php
class t {
const A = 1;
function __construct() {
$r = new ReflectionClass($this);
var_dump($r->hasConstant('A'));
var_dump($r->hasConstant('c'));
var_dump($r->hasConstant('A'), self::A);
}
protected function getA() {
return self::A;
}
protected function getB() {
return self::B;
}
}
class s extends t {
const A = 2;
const B = 3;
function __construct() {
$r = new ReflectionClass($this);
var_dump($r->hasConstant('A'), self::A, $this->getB());
}
}
$t = new t;
$s = new s;
bool(true)
bool(false)
bool(true)
int(1)
Fatal error: Uncaught Error: Undefined class constant 'B' in /in/QDprJ:17
Stack trace:
#0 /in/QDprJ(25): t->getB()
#1 /in/QDprJ(29): s->__construct()
#2 {main}
thrown in /in/QDprJ on line 17
Process exited with code 255.
bool(true)
bool(false)
bool(true)
int(1)
Fatal error: Undefined class constant 'B' in /in/QDprJ on line 17
Process exited with code 255.
Output for 5.0.0 - 5.0.5
Fatal error: Call to undefined method ReflectionClass::hasConstant() in /in/QDprJ on line 7
Process exited with code 255.
Output for 4.4.2 - 4.4.9
Parse error: syntax error, unexpected T_CONST, expecting T_OLD_FUNCTION or T_FUNCTION or T_VAR or '}' in /in/QDprJ on line 3
Process exited with code 255.
Parse error: parse error, unexpected T_CONST, expecting T_OLD_FUNCTION or T_FUNCTION or T_VAR or '}' in /in/QDprJ on line 3
Process exited with code 255.
Output for 4.3.2 - 4.3.4
Parse error: parse error, expecting `T_OLD_FUNCTION' or `T_FUNCTION' or `T_VAR' or `'}'' in /in/QDprJ on line 3
Process exited with code 255.