Arquivos
hhvm/hphp/test/quick/priv1.php
T
ptarjan 503f75d08b Rename test directories
These names don't make sense now that we run both suites the same
way.
2013-04-17 09:06:51 -07:00

94 linhas
1.3 KiB
PHP

<?php
class C1 {
private function foo() {
echo "C1::foo\n";
}
public function test() {
// This should call C1::foo, not D1::foo
$obj = new D1;
$obj->foo();
}
}
class D1 extends C1 {
private function foo() {
echo "D1::foo\n";
}
}
$obj = new C1;
$obj->test();
class C2 {
private function foo() {
echo "C2::foo\n";
}
public function test() {
$this->foo();
}
}
class D2 extends C2 {
protected function foo() {
echo "D2::foo\n";
}
}
class E2 extends D2 {
}
$obj = new E2;
// This should call C2::foo, not D2::foo
$obj->test();
class C3 {
private function foo() {
echo "C3::foo\n";
}
public function test() {
$this->foo();
}
}
class D3 extends C3 {
public function foo() {
echo "D3::foo\n";
}
}
$obj = new D3;
// This should call C3::foo, not D3::foo
$obj->test();
class A4 {
private function foo() {
echo "A4::foo\n";
}
}
class B4 extends A4 {
public function foo() {
echo "B4::foo\n";
}
}
class C4 {
private function foo() {
echo "C4::foo\n";
}
public static function test($obj) {
$obj->foo();
}
}
C4::test(new B4);
class A5 {
private function __construct() {
}
}
class B5 extends A5 {
public static function test() {
return new A5;
}
}
B5::test();