sourcetip

PHP에서 IIFE(즉시 호출된 함수식)?

fileupload 2023. 9. 20. 20:40
반응형

PHP에서 IIFE(즉시 호출된 함수식)?

저는 PHP가 자바스크립트와 같은 IIF(Imediate Invocated Function Expression)와 동등한 것이 있는지 궁금합니다.PHP Closure는 자바스크립트(부호, 의존성, 주입, 지시)와 유사하게 작동할 수 있도록 작성할 수 있습니까?

(function(){
    myModule = angular.module('myAngularApplication', []);
}());

위 식을 IIF(Imently vocated function expression)라고 합니다.함수 정의는 .js 파일이 로드될 때마다 즉시 호출되기 때문입니다.IIFE가 효과적인 주된 이유는 글로벌 변수와 기능을 가질 필요 없이 모든 코드를 즉시 실행할 수 있기 때문입니다.이렇게 하면 전역 변수를 사용하여 모듈로 컨트롤러를 만들 때 컨트롤러 생성이 실패합니다.이 문제를 방지하기 위해 getter function angular.module을 사용하여 컨트롤러를 모듈과 연결합니다.그 동안 컨트롤러도 IIFE에 넣으면 어떨까요?

(function () {

    var booksController = function ($scope) {
         $scope.message = "Hello from booksController";
    }

    angular.module('myAngularApplication').controller('booksController', booksController); 
}());

출처 : http://www.codeproject.com/Articles/995498/Angular-Tutorial-Part-Understanding-Modules-and 감사합니다.

PHP 7에서는 다음을 수행할 수 있습니다.

(function() { echo "yes, this works in PHP 7.\n"; })();

이것은 PHP 5.x에서는 작동하지 않습니다. 대신에 가장 가까이 올 수 있는 것은 다음과 같습니다.

call_user_func(function() { echo "this works too\n"; });

php의 익명 클래스를 즉시 호출할 수도 있습니다.

<?php new class (0,1) {
  public function __construct (int $a, int $b) {

    (($a < 1) ? 'var_dump' : 'var_export')(
      gettype (($b > 0) ? __FUNCTION__ 
        : (($a > 0) ? microtime (true) 
        : __LINE__
    )))&exit;
    
  }
};

언급URL : https://stackoverflow.com/questions/35044452/iife-immediately-invoked-function-expression-in-php

반응형