<?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; } }
钟毅2017-10-04 16:32:28
이것은 commhelper 자체가 있고 인스턴스화할 수 없는 정적 클래스입니다. 이는 COMMHELPER에 정의된 정적 함수에서 생성된 개체이기 때문입니다. 간단히 말해서 이 함수 함수는 테스트 상위 클래스에 정의된 정적 함수를 반환합니다. 부모 클래스에 있는 것이 기본적으로 거기에 있을 것이라고 생각하십시오. 원하는 경우 사용하십시오. 사용이 더욱 편리해졌습니다.
数据分析师2017-10-01 00:30:35
PHP의 정적에 대해 헷갈리시나요? - PHP 중국어 웹사이트 Q&A - PHP의 정적에 대해 헷갈리시나요? - PHP 중국어 웹사이트 Q&A
둘러보고 배워보세요.
阿神2017-02-24 09:24:19
首先,你应该先了解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;也就是数据当前类的属性。
迷茫2017-02-24 09:23:31
如果本类没有的话,那就代表它的父类中的getSharedConfig()静态方法,这里也可以写成self::getSharedConfig(),父类就是extends 的那个类哈
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 我在父类中哦 +---------------------------------------------------------------------- */