Beispiel #1
0
 public static function test()
 {
     var_dump(is_callable('B1::f'));
     B1::f();
 }
Beispiel #2
0
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
{
    protected static function test()
    {
        echo __METHOD__ . "\n";
    }
}
class B2 extends A2
{
    public static function doTest(A2 $obj)
    {
        echo __METHOD__ . "\n";
        $obj->test();
    }
Beispiel #3
0
 function zz($id)
 {
     parent::__construct($id);
 }
Beispiel #4
0
        static::$instance = $container;
    }
    //这样做,启动单例的作用
    public static function getInstance()
    {
        return static::$instance;
    }
}
class A1 extends B1
{
    public function __construct()
    {
        //$this->setInstance($this);
        static::setInstance($this);
    }
    public function hello()
    {
        echo "A1 hello Method" . PHP_EOL;
    }
}
class A2 extends B1
{
    public function world()
    {
        echo 'A2 world Method' . PHP_EOL;
    }
}
$a1Obj = new A1();
B1::getInstance()->hello();
//输出 A1 hello Method
A2::getInstance()->hello();
Beispiel #5
0
 public static function test()
 {
     echo B1::f();
 }
<?php

class A1
{
    public static function getInstance()
    {
        return new self();
    }
}
class B1 extends A1
{
}
$obj = B1::getInstance();
var_dump($obj);
//object(A1)#1 (0) { }
class A
{
    public static function getInstance()
    {
        return new static();
    }
}
class B extends A
{
}
$obj = B::getInstance();
var_dump($obj);
//object(B)#2 (0) { }