현재 위치: > 최신 기사 목록> PHP 인터뷰를위한 필수 고급 기술에 대한 자세한 설명 : 마법 방법, 발전기 및 폐쇄 응용 프로그램

PHP 인터뷰를위한 필수 고급 기술에 대한 자세한 설명 : 마법 방법, 발전기 및 폐쇄 응용 프로그램

M66 2025-08-06

마법 방법

마법 방법을 사용하면 클래스에서 특정 이벤트를 자동으로 처리 할 수 있습니다. 예를 들어, __construct ()는 개체 초기화에 사용되며 __destruct ()는 리소스를 자유롭게하는 데 사용됩니다.

 class MyClass {
    public function __construct() {
        // 개체 초기화 코드
    }

    public function __destruct() {
        // 코드를 정리하십시오
    }
}

발전기

발전기는 모든 데이터를 한 번에로드하지 않고 큰 데이터 세트를 가로 지르는 효율적인 방법을 제공합니다.

 function numbers() {
    for ($i = 0; $i < 10; $i++) {
        yield $i;
    }
}

foreach (numbers() as $number) {
    echo $number;
}

폐쇄

클로저는 코드 유연성을 향상시키기 위해 매개 변수로 전달되고 변수 또는 객체에 바인딩 될 수있는 익명 함수입니다.

 $greeting = function($name) {
    return "Hello, $name!";
};

echo $greeting("John");

익명 수업

익명 클래스는 이름 지정없이 클래스의 빠른 생성을 지원하여 코드 구조를 단순화합니다.

 $object = new class {
    public function greet($name) {
        return "Hello, $name!";
    }
};

echo $object->greet("Jane");

특성

특성은 상속없이 기존 클래스에 메소드와 속성을 추가하고 코드 재사용 성을 향상시킬 수 있습니다.

 trait Greeting {
    public function greet($name) {
        return "Hello, $name!";
    }
}

class MyClass {
    use Greeting;
}

$object = new MyClass();
echo $object->greet("Alice");

실제 사례 : 발전기를 사용하여 호출기를 만듭니다

호출기는 생성기를 통해 구현되며 메모리 효율을 향상시키기 위해 대량의 데이터가 배치로 얻어집니다.

 function paginate($data, $perPage) {
    $currentPage = 1;
    while ($currentPage <= ceil(count($data) / $perPage)) {
        $offset = ($currentPage - 1) * $perPage;
        yield array_slice($data, $offset, $perPage);
        $currentPage++;
    }
}

$data = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10];

foreach (paginate($data, 3) as $page) {
    print_r($page);
}

위의 내용은 PHP 인터뷰에서 일반적이고 실용적인 고급 기술을 다룹니다. 이러한 지식 포인트를 마스터하면 인터뷰 문제에 더 잘 대응하고 개발 효율성을 향상시킬 수 있습니다.