[php] 静态方法 接口 链式操作

来源:互联网 发布:爱知工科大学怎么样 编辑:程序博客网 时间:2024/05/21 00:18

一、静态方法

class test{    function __construct($str){        echo $str.'<br>';    }    public function test() {        echo 'test <br>';    }    public static function test2() {        echo 'test2 <br>';    }}$test = new test("hello");  // hello$test->test(); // testtest::test2();  // test2// 在构造方法中使用class B {    public function say() {        echo 'hello world !';    }}class A {    private static $class;    public function __construct() {        self::$class = new B;  // 初始化给静态变量赋值    }    public function say() {        self::$class->say();    }}$a = new A();$a->say(); // hello world !

二、接口

interface ITest {    public function sayHello();  // 接口方法}// 定义一个类实现这个接口class Test implements ITest {    public function sayHello() {  // 实现接口方法        echo 'hello world !';    }}$test = new Test();$test->sayHello();  // hello world !

小知识:

抽象类与接口的区别:
1. 抽象类中可以没有抽象方法,但有抽像方法的类都是抽象类
2. 接口是通过类实现的,抽象类是通过类继承的

三、链式

// 方式一 return $thisclass Test {    public function a($str) {        echo $str;        return $this; // 返回当前指针    }    public function b() {        echo 'b';    }}$test = new Test();$test->a('hello ')->b();  // hello b// 方式二 return objectclass B {    public function hello() {        echo 'hello world !';    }}class A {    public $say;    public function __construct() {        $this->say = $this->say();  // 初始化时赋值    }    public function say() {        return new B;    }}$a = new A();$a->say->hello();  // 或$a->say()->hell();

谢谢关注!

0 0
原创粉丝点击