php中的 static 疑惑?

<?php
namespace App\Sdks\Services;

use App\Sdks\Library\CommonHelper;


class test extends CommonHelper
{
    public function index()
    {   
        //不懂这里面的 static::getSharedConfig() 这个方法是调用的那个类?
        return  static::getSharedConfig()->logic->edu_page->search_page_size;
    }


}
阅读 2.7k
2 个回答

如果本类没有的话,那就代表它的父类中的getSharedConfig()静态方法,这里也可以写成self::getSharedConfig(),父类就是extends 的那个类哈
Static(静态)关键字

class father {
    static public function fatherF(){
        echo "我在父类中哦";
    }
}
class oneself extends father{
    public function start(){
    //    return self::fatherF();
        return static::fatherF();
    //    return self::oneselfF();
    }
    static public function oneselfF(){
        echo "我在儿子类中哦";
    }
}
echo PHP_VERSION; // 版本
$c = new oneself;
$c->start();

/* 
+----------------------------------------------------------------------
| 5.6.29 我在父类中哦
+----------------------------------------------------------------------
*/

首先,你应该先了解static的用法,再去理解你不明白的这段代码的含义。
先给你看你一个static使用的例子:

class zhang{
    protected static $name = 'zhangsan';
    public static function getName() {       
        echo static::$name;
    }
}
class li extends zhang {
    protected static $name = 'lisi';
}
Sedan::getName();

上面输出的是结果是:lisi;也就是数据当前类的属性。

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题