> 백엔드 개발 > PHP 튜토리얼 > PHP 클로저의 역할

PHP 클로저의 역할

WBOY
풀어 주다: 2023-03-02 09:30:01
원래의
1038명이 탐색했습니다.

<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.

모두가 언급했어요懒加载

2. 사실 익명함수는

函数式编程의 표현이 많습니다.

관련 라벨:
php
원천:php.cn
본 웹사이트의 성명
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.
인기 튜토리얼
더>
최신 다운로드
더>
웹 효과
웹사이트 소스 코드
웹사이트 자료
프론트엔드 템플릿