>  기사  >  백엔드 개발  >  문자열 클래스 이름을 기반으로 객체를 동적으로 생성하는 PHP의 분석 예

문자열 클래스 이름을 기반으로 객체를 동적으로 생성하는 PHP의 분석 예

黄舟
黄舟원래의
2017-08-15 14:36:194895검색

마지막 강의 PHP 안전 문자열 개발 아이디어 및 코드 공유에서는 PHP 안전 문자열의 개발 및 사용을 소개했습니다. 오늘은 PHP 문자열에서 객체의 동적 생성에 대해 계속 소개하겠습니다. 요구 사항은 다른 위치에서 클래스 이름을 가져와 해당 클래스의 개체를 생성하는 것입니다. 그러면 이전에 사용된 구문($obj = new $classname();)이 작동하지 않습니다. 오늘은 구현 방법을 소개해드리겠습니다~


먼저 문자열 클래스 이름을 기반으로 객체를 동적으로 생성하기 위해 이 강의에서 사용해야 하는 PHP 클래스 라이브러리를 다운로드하세요: http:/ /www.php.cn/xiazai/leiku/606


다운로드가 완료된 후 php 클래스 라이브러리 파일을 찾아 로컬 디렉토리에 압축을 푼 후 새 파일을 생성해주세요~

우리는 새로운 PHP 파일에 있습니다. 내부에서 이 클래스를 호출하고 인스턴스화합니다:

<?php
include_once "stringtext.php"; //引入类库文件
$className = &#39;Test&#39;;          
$obj = call_user_func(array($className, &#39;create&#39;));

var_dump($obj);
?>

이러한 구문을 직접 사용하는 것은 확실히 작동하지 않습니다:

$classname=&#39;Test&#39;;
$obj = new $classname();

대상 클래스에 대한 정적 메서드를 정의하여 객체의 인스턴스를 생성할 수 있습니다. 그런 다음 call_user_func 또는 call_user_func_array를 통해 메서드를 호출합니다. 물론 팩토리 클래스 등의 메소드를 통해서도 구현할 수 있습니다.

실행 결과는 다음과 같습니다.

문자열 클래스 이름을 기반으로 객체를 동적으로 생성하는 PHP의 분석 예

위 내용은 문자열 클래스 이름을 기반으로 객체를 동적으로 생성하는 PHP의 분석 예의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.