????JFIF??x?x????'
| Server IP : 79.136.114.73 / Your IP : 216.73.216.191 Web Server : Apache/2.4.7 (Ubuntu) PHP/5.5.9-1ubuntu4.29 OpenSSL/1.0.1f System : Linux b8009 3.13.0-170-generic #220-Ubuntu SMP Thu May 9 12:40:49 UTC 2019 x86_64 User : www-data ( 33) PHP Version : 5.5.9-1ubuntu4.29 Disable Function : pcntl_alarm,pcntl_fork,pcntl_waitpid,pcntl_wait,pcntl_wifexited,pcntl_wifstopped,pcntl_wifsignaled,pcntl_wexitstatus,pcntl_wtermsig,pcntl_wstopsig,pcntl_signal,pcntl_signal_dispatch,pcntl_get_last_error,pcntl_strerror,pcntl_sigprocmask,pcntl_sigwaitinfo,pcntl_sigtimedwait,pcntl_exec,pcntl_getpriority,pcntl_setpriority, MySQL : ON | cURL : ON | WGET : ON | Perl : ON | Python : ON | Sudo : ON | Pkexec : ON Directory : /proc/self/root/home/b8009/php-5.6.22/ext/reflection/tests/ |
Upload File : |
--TEST--
ReflectionClass::getProperty()
--CREDITS--
Robin Fernandes <robinf@php.net>
Steve Seear <stevseea@php.net>
--FILE--
<?php
class A {
public $pubC = "pubC in A";
protected $protC = "protC in A";
private $privC = "privC in A";
public $pubA = "pubA in A";
protected $protA = "protA in A";
private $privA = "privA in A";
}
class B extends A {
public $pubC = "pubC in B";
protected $protC = "protC in B";
private $privC = "privC in B";
public $pubB = "pubB in B";
protected $protB = "protB in B";
private $privB = "privB in B";
}
class C extends B {
public $pubC = "pubC in C";
protected $protC = "protC in C";
private $privC = "privC in C";
}
class X {
public $pubC = "pubC in X";
protected $protC = "protC in X";
private $privC = "privC in X";
}
$myC = new C;
$rc = new ReflectionClass("C");
function showInfo($name) {
global $rc, $myC;
echo "--- (Reflecting on $name) ---\n";
try {
$rp = $rc->getProperty($name);
} catch (Exception $e) {
echo $e->getMessage() . "\n";
return;
}
try {
var_dump($rp);
var_dump($rp->getValue($myC));
} catch (Exception $e) {
echo $e->getMessage() . "\n";
return;
}
}
showInfo("pubA");
showInfo("protA");
showInfo("privA");
showInfo("pubB");
showInfo("protB");
showInfo("privB");
showInfo("pubC");
showInfo("protC");
showInfo("privC");
showInfo("doesntExist");
showInfo("A::pubC");
showInfo("A::protC");
showInfo("A::privC");
showInfo("B::pubC");
showInfo("B::protC");
showInfo("B::privC");
showInfo("c::pubC");
showInfo("c::PUBC");
showInfo("C::pubC");
showInfo("C::protC");
showInfo("C::privC");
showInfo("X::pubC");
showInfo("X::protC");
showInfo("X::privC");
showInfo("X::doesntExist");
showInfo("doesntexist::doesntExist");
?>
--EXPECTF--
--- (Reflecting on pubA) ---
object(ReflectionProperty)#%d (2) {
[%u|b%"name"]=>
%unicode|string%(4) "pubA"
[%u|b%"class"]=>
%unicode|string%(1) "A"
}
%unicode|string%(9) "pubA in A"
--- (Reflecting on protA) ---
object(ReflectionProperty)#%d (2) {
[%u|b%"name"]=>
%unicode|string%(5) "protA"
[%u|b%"class"]=>
%unicode|string%(1) "A"
}
Cannot access non-public member C::protA
--- (Reflecting on privA) ---
Property privA does not exist
--- (Reflecting on pubB) ---
object(ReflectionProperty)#%d (2) {
[%u|b%"name"]=>
%unicode|string%(4) "pubB"
[%u|b%"class"]=>
%unicode|string%(1) "B"
}
%unicode|string%(9) "pubB in B"
--- (Reflecting on protB) ---
object(ReflectionProperty)#%d (2) {
[%u|b%"name"]=>
%unicode|string%(5) "protB"
[%u|b%"class"]=>
%unicode|string%(1) "B"
}
Cannot access non-public member C::protB
--- (Reflecting on privB) ---
Property privB does not exist
--- (Reflecting on pubC) ---
object(ReflectionProperty)#%d (2) {
[%u|b%"name"]=>
%unicode|string%(4) "pubC"
[%u|b%"class"]=>
%unicode|string%(1) "C"
}
%unicode|string%(9) "pubC in C"
--- (Reflecting on protC) ---
object(ReflectionProperty)#%d (2) {
[%u|b%"name"]=>
%unicode|string%(5) "protC"
[%u|b%"class"]=>
%unicode|string%(1) "C"
}
Cannot access non-public member C::protC
--- (Reflecting on privC) ---
object(ReflectionProperty)#%d (2) {
[%u|b%"name"]=>
%unicode|string%(5) "privC"
[%u|b%"class"]=>
%unicode|string%(1) "C"
}
Cannot access non-public member C::privC
--- (Reflecting on doesntExist) ---
Property doesntExist does not exist
--- (Reflecting on A::pubC) ---
object(ReflectionProperty)#%d (2) {
[%u|b%"name"]=>
%unicode|string%(4) "pubC"
[%u|b%"class"]=>
%unicode|string%(1) "A"
}
%unicode|string%(9) "pubC in C"
--- (Reflecting on A::protC) ---
object(ReflectionProperty)#%d (2) {
[%u|b%"name"]=>
%unicode|string%(5) "protC"
[%u|b%"class"]=>
%unicode|string%(1) "A"
}
Cannot access non-public member A::protC
--- (Reflecting on A::privC) ---
object(ReflectionProperty)#%d (2) {
[%u|b%"name"]=>
%unicode|string%(5) "privC"
[%u|b%"class"]=>
%unicode|string%(1) "A"
}
Cannot access non-public member A::privC
--- (Reflecting on B::pubC) ---
object(ReflectionProperty)#%d (2) {
[%u|b%"name"]=>
%unicode|string%(4) "pubC"
[%u|b%"class"]=>
%unicode|string%(1) "B"
}
%unicode|string%(9) "pubC in C"
--- (Reflecting on B::protC) ---
object(ReflectionProperty)#%d (2) {
[%u|b%"name"]=>
%unicode|string%(5) "protC"
[%u|b%"class"]=>
%unicode|string%(1) "B"
}
Cannot access non-public member B::protC
--- (Reflecting on B::privC) ---
object(ReflectionProperty)#%d (2) {
[%u|b%"name"]=>
%unicode|string%(5) "privC"
[%u|b%"class"]=>
%unicode|string%(1) "B"
}
Cannot access non-public member B::privC
--- (Reflecting on c::pubC) ---
object(ReflectionProperty)#%d (2) {
[%u|b%"name"]=>
%unicode|string%(4) "pubC"
[%u|b%"class"]=>
%unicode|string%(1) "C"
}
%unicode|string%(9) "pubC in C"
--- (Reflecting on c::PUBC) ---
Property PUBC does not exist
--- (Reflecting on C::pubC) ---
object(ReflectionProperty)#%d (2) {
[%u|b%"name"]=>
%unicode|string%(4) "pubC"
[%u|b%"class"]=>
%unicode|string%(1) "C"
}
%unicode|string%(9) "pubC in C"
--- (Reflecting on C::protC) ---
object(ReflectionProperty)#%d (2) {
[%u|b%"name"]=>
%unicode|string%(5) "protC"
[%u|b%"class"]=>
%unicode|string%(1) "C"
}
Cannot access non-public member C::protC
--- (Reflecting on C::privC) ---
object(ReflectionProperty)#%d (2) {
[%u|b%"name"]=>
%unicode|string%(5) "privC"
[%u|b%"class"]=>
%unicode|string%(1) "C"
}
Cannot access non-public member C::privC
--- (Reflecting on X::pubC) ---
Fully qualified property name X::pubC does not specify a base class of C
--- (Reflecting on X::protC) ---
Fully qualified property name X::protC does not specify a base class of C
--- (Reflecting on X::privC) ---
Fully qualified property name X::privC does not specify a base class of C
--- (Reflecting on X::doesntExist) ---
Fully qualified property name X::doesntExist does not specify a base class of C
--- (Reflecting on doesntexist::doesntExist) ---
Class doesntexist does not exist