<code> public function __construct($config) { parent::__construct(); $this['config'] = function () use ($config) { return new Config($config); }; ... 其中 $this['config'] = function () use ($config) { return new Config($config); 能不能直接写成这样: $this['config'] = new Config($config); 有什么优势?</code>
<code> public function __construct($config) { parent::__construct(); $this['config'] = function () use ($config) { return new Config($config); }; ... 其中 $this['config'] = function () use ($config) { return new Config($config); 能不能直接写成这样: $this['config'] = new Config($config); 有什么优势?</code>
지연 로딩. 그러나 두 가지 글쓰기 방법 모두 괜찮습니다. $this['config'] = new Config($config);
이와 같이 $this->['config']
에 값을 할당하면 new Config($config)
연산이 수행됩니다.
<code class="php">$this['config'] = function () use ($config) { return new Config($config); }</code>
이런 식으로 $this->['config']
에 익명 함수를 부여하면 new Config($config)
작업은 필요할 때만 수행됩니다.
제 설명이 맞는지 모르겠습니다= =표현력이 별로 좋지 않습니다= =
<code>能不能直接写成这样: $this['config'] = new Config($config); 有什么优势?</code>
이렇게 작성할 수 있지만 인스턴스화될 때마다 새로운 Config 클래스로 이동하며 사용 여부는 중요하지 않습니다.
<code>$this['config'] = function () use ($config) { return new Config($config); }</code>
이러한 작성 방법은 $this['config']에 대한 익명 함수를 선언하는 것입니다. $this['config']가 실제로 호출되면 새 Config 클래스에 액세스됩니다.
이런 방식으로 작성하면 $this['config']가 실제로 사용되지 않을 때 추가 인스턴스화 프로세스와 메모리 소비가 줄어든다는 장점이 있습니다
클로저는 실제로 호출될 때 새로운 Config를 생성하므로 지연 로드가 달성될 수 있습니다.
위의
외에 또 다른 장점은 懒加载
을 구현한다는 점입니다. 구성을 얻을 때마다 새로운 구성이 나옵니다工厂模式
1.
모두가 언급했어요懒加载
函数式编程
의 표현이 많습니다.