찾다

 >  Q&A  >  본문

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;
    }


}


小白小白2833일 전977

모든 응답(4)나는 대답할 것이다

  • 钟毅

    钟毅2017-10-04 16:32:28

    이것은 commhelper 자체가 있고 인스턴스화할 수 없는 정적 클래스입니다. 이는 COMMHELPER에 정의된 정적 함수에서 생성된 개체이기 때문입니다. 간단히 말해서 이 함수 함수는 테스트 상위 클래스에 정의된 정적 함수를 반환합니다. 부모 클래스에 있는 것이 기본적으로 거기에 있을 것이라고 생각하십시오. 원하는 경우 사용하십시오. 사용이 더욱 편리해졌습니다.

    회신하다
    0
  • 数据分析师

    数据分析师2017-10-01 00:30:35

    PHP의 정적에 대해 헷갈리시나요? - PHP 중국어 웹사이트 Q&A - PHP의 정적에 대해 헷갈리시나요? - PHP 중국어 웹사이트 Q&A

    둘러보고 배워보세요.

    회신하다
    0
  • 阿神

    阿神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;也就是数据当前类的属性。 

    회신하다
    0
  • 迷茫

    迷茫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 我在父类中哦
    +----------------------------------------------------------------------
    */

    회신하다
    0
  • 취소회신하다