좋아, 나는 당신이 원하는 것을 이해합니다. 전후에 관련없는 콘텐츠를 포함 할 수있는 PHP 기사를 작성하는 데 도움이되지만, 본문은 제목의 내용을 완전히 설명하고 수평선으로 분리합니다. 기사는 직접 끝납니다. 예는 다음과 같습니다.
<span><span><span class="hljs-meta"><?php</span></span><span>
</span><span><span class="hljs-comment">// 이것은 텍스트와 관련이없는 이전 부분입니다.</span></span><span>
</span><span><span class="hljs-keyword">echo</span></span><span> </span><span><span class="hljs-string">"내 환영합니다PHP공부 노트!<br>"</span></span><span>;
</span><span><span class="hljs-variable">$time</span></span><span> = </span><span><span class="hljs-title function_ invoke__">date</span></span><span>(</span><span><span class="hljs-string">'Y-m-d H:i:s'</span></span><span>);
</span><span><span class="hljs-keyword">echo</span></span><span> </span><span><span class="hljs-string">"현재 시간은입니다:<span class="hljs-subst">$time</span></span></span><span><br>";
</span><span><span class="hljs-meta">?></span></span><span>
<hr>
</span><span><span class="hljs-meta"><?php</span></span><span>
<span class="hljs-comment">/**
* 제목:통과하는 방법class_exists특정 클래스에서 인터페이스가 구현되었는지 여부를 결정?
*
* 존재하다PHP개발 중,때로는 특정 클래스에서 인터페이스가 구현되었는지 여부를 결정하고자합니다.,해당 논리적 처리를 위해。
* PHP이를 달성하는 데 도움이되는 몇 가지 내장 기능이 제공됩니다.,주요 것입니다class_exists()그리고interface_exists(),게다가is_subclass_of()그리고in_array()기다리다。
*
* 하나、이해하다class_exists()그리고interface_exists()
* - class_exists(string $className, bool $autoload = true): 지정된 클래스가 정의되었는지 여부를 결정합니다。
* - interface_exists(string $interfaceName, bool $autoload = true): 지정된 인터페이스가 정의되었는지 여부를 결정합니다。
*
* 알아채다:class_exists판사 수업,interface_exists인터페이스 만 판단합니다,혼자 사용하십시오class_exists특정 유형이 특정 인터페이스를 구현하는지 직접 결정하는 것은 불가능합니다.。
*
* 둘、특정 유형이 인터페이스를 구현하는지 여부를 결정하십시오
* PHP클래스가 인터페이스를 구현하는지 여부를 결정하는 몇 가지 방법이 있습니다.:
*
* 방법1:사용 class_implements()
* class_implements($className) 이 클래스에서 구현 한 모든 인터페이스 이름 배열을 반환합니다.。
*/</span>
</span><span><span class="hljs-class"><span class="hljs-keyword">interface</span></span></span><span> </span><span><span class="hljs-title">LoggerInterface</span></span><span> {
</span><span><span class="hljs-keyword">public</span></span><span> </span><span><span class="hljs-function"><span class="hljs-keyword">function</span></span></span><span> </span><span><span class="hljs-title">log</span></span><span>(</span><span><span class="hljs-params"><span class="hljs-keyword">string</span></span></span><span> </span><span><span class="hljs-variable">$message</span></span><span>);
}
</span><span><span class="hljs-class"><span class="hljs-keyword">class</span></span></span><span> </span><span><span class="hljs-title">FileLogger</span></span><span> </span><span><span class="hljs-keyword">implements</span></span><span> </span><span><span class="hljs-title">LoggerInterface</span></span><span> {
</span><span><span class="hljs-keyword">public</span></span><span> </span><span><span class="hljs-function"><span class="hljs-keyword">function</span></span></span><span> </span><span><span class="hljs-title">log</span></span><span>(</span><span><span class="hljs-params"><span class="hljs-keyword">string</span></span></span><span> </span><span><span class="hljs-variable">$message</span></span><span>) {
</span><span><span class="hljs-keyword">echo</span></span><span> </span><span><span class="hljs-string">"기록에 기록하십시오: <span class="hljs-subst">$message</span></span></span><span>";
}
}
</span><span><span class="hljs-variable">$className</span></span><span> = </span><span><span class="hljs-string">'FileLogger'</span></span><span>;
</span><span><span class="hljs-variable">$interfaceName</span></span><span> = </span><span><span class="hljs-string">'LoggerInterface'</span></span><span>;
</span><span><span class="hljs-keyword">if</span></span><span> (</span><span><span class="hljs-title function_ invoke__">class_exists</span></span><span>(</span><span><span class="hljs-variable">$className</span></span><span>) && </span><span><span class="hljs-title function_ invoke__">interface_exists</span></span><span>(</span><span><span class="hljs-variable">$interfaceName</span></span><span>)) {
</span><span><span class="hljs-variable">$interfaces</span></span><span> = </span><span><span class="hljs-title function_ invoke__">class_implements</span></span><span>(</span><span><span class="hljs-variable">$className</span></span><span>);
</span><span><span class="hljs-keyword">if</span></span><span> (</span><span><span class="hljs-title function_ invoke__">in_array</span></span><span>(</span><span><span class="hljs-variable">$interfaceName</span></span><span>, </span><span><span class="hljs-variable">$interfaces</span></span><span>)) {
</span><span><span class="hljs-keyword">echo</span></span><span> </span><span><span class="hljs-string">"<span class="hljs-subst">$className</span></span></span><span> 구현 된 인터페이스 </span><span><span class="hljs-subst">$interfaceName</span></span><span>";
} </span><span><span class="hljs-keyword">else</span></span><span> {
</span><span><span class="hljs-keyword">echo</span></span><span> </span><span><span class="hljs-string">"<span class="hljs-subst">$className</span></span></span><span> 인터페이스가 구현되지 않았습니다 </span><span><span class="hljs-subst">$interfaceName</span></span><span>";
}
} </span><span><span class="hljs-keyword">else</span></span><span> {
</span><span><span class="hljs-keyword">echo</span></span><span> </span><span><span class="hljs-string">"类或接口不存존재하다"</span></span><span>;
}
<span class="hljs-comment">/**
* 방법2:사용 instanceof
* 也可以통과하다实例化对象并사용 instanceof 판단합시다:
*/</span>
</span><span><span class="hljs-variable">$logger</span></span><span> = </span><span><span class="hljs-keyword">new</span></span><span> </span><span><span class="hljs-title class_">FileLogger</span></span><span>();
</span><span><span class="hljs-keyword">if</span></span><span> (</span><span><span class="hljs-variable">$logger</span></span><span> </span><span><span class="hljs-keyword">instanceof</span></span><span> LoggerInterface) {
</span><span><span class="hljs-keyword">echo</span></span><span> </span><span><span class="hljs-string">"<br>통과하다 instanceof 심판,이 개체는 구현됩니다 LoggerInterface"</span></span><span>;
}
<span class="hljs-comment">/**
* 요약:
* 1. class_exists() 仅심판类是否存존재하다。
* 2. interface_exists() 심판接口是否存존재하다。
* 3. 심판某类是否实现接口时,사용 가능 class_implements() 인터페이스 배열로 돌아갑니다,다시 사용하십시오 in_array() 심판。
* 4. 对对象实例也可사용 instanceof 심판。
*
* 그래서,我们就可以安全地존재하다运行时심판某个接口是否已被某类实现,避免出现调用未实现방법的错误。
*/</span>
</span><span><span class="hljs-meta">?></span></span><span>
<hr>
</span><span><span class="hljs-meta"><?php</span></span><span>
</span><span><span class="hljs-comment">// 尾部그리고正文无关的内容</span></span><span>
</span><span><span class="hljs-keyword">echo</span></span><span> </span><span><span class="hljs-string">"이 기사를 읽어 주셔서 감사합니다PHP지도 시간!<br>"</span></span><span>;
</span><span><span class="hljs-variable">$footer_note</span></span><span> = </span><span><span class="hljs-string">"나는 오늘 공부했다 class_exists、interface_exists 게다가 class_implements 的사용방법。"</span></span><span>;
</span><span><span class="hljs-keyword">echo</span></span><span> </span><span><span class="hljs-variable">$footer_note</span></span><span>;
</span><span><span class="hljs-meta">?></span></span><span>
</span></span>