????JFIF??x?x????'
Server IP : 79.136.114.73 / Your IP : 3.148.106.159 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/Zend/tests/ |
Upload File : |
--TEST-- class name as scalar from ::class keyword --FILE-- <?php namespace Foo\Bar { class One { // compile time constants const A = self::class; const B = Two::class; } class Two extends One { public static function run() { var_dump(self::class); // self compile time lookup var_dump(static::class); // runtime lookup var_dump(parent::class); // runtime lookup var_dump(Baz::class); // default compile time lookup } } class Three extends Two { // compile time static lookups public static function checkCompileTime( $one = self::class, $two = Baz::class, $three = One::A, $four = self::B ) { var_dump($one, $two, $three, $four); } } echo "In NS\n"; var_dump(Moo::CLASS); // resolve in namespace } namespace { use Bee\Bop as Moo, Foo\Bar\One; echo "Top\n"; var_dump(One::class); // resolve from use var_dump(Boo::class); // resolve in global namespace var_dump(Moo::CLASS); // resolve from use as var_dump(\Moo::Class); // resolve fully qualified $class = One::class; // assign class as scalar to var $x = new $class; // create new class from original scalar assignment var_dump($x); Foo\Bar\Two::run(); // resolve runtime lookups echo "Parent\n"; Foo\Bar\Three::run(); // resolve runtime lookups with inheritance echo "Compile Check\n"; Foo\Bar\Three::checkCompileTime(); } ?> --EXPECTF-- In NS string(11) "Foo\Bar\Moo" Top string(11) "Foo\Bar\One" string(3) "Boo" string(7) "Bee\Bop" string(3) "Moo" object(Foo\Bar\One)#1 (0) { } string(11) "Foo\Bar\Two" string(11) "Foo\Bar\Two" string(11) "Foo\Bar\One" string(11) "Foo\Bar\Baz" Parent string(11) "Foo\Bar\Two" string(13) "Foo\Bar\Three" string(11) "Foo\Bar\One" string(11) "Foo\Bar\Baz" Compile Check string(13) "Foo\Bar\Three" string(11) "Foo\Bar\Baz" string(11) "Foo\Bar\One" string(11) "Foo\Bar\Two"