<span><span><span class="hljs-meta"><?php</span></span><span>
</span><span><span class="hljs-comment">// 코드 의이 부분은 기사의 내용과 관련이 없습니다.,당신은 몇 가지 진술이나 의견을 배치 할 수 있습니다</span></span><span>
</span><span><span class="hljs-comment">// 예를 들어, 프로그램 저자 정보、타임 스탬프 등</span></span><span>
</span><span><span class="hljs-comment">// Author: ChatGPT</span></span><span>
</span><span><span class="hljs-comment">// Date: 2025-07-02</span></span><span>
</span><span><span class="hljs-meta">?></span></span><span>
<hr>
<h1>사용하는 방법function_exists기능은 내장 기능과 사용자 정의 기능을 구별합니다?자세한 방법 분석</h1>
<p>존재하다PHP개발 중,我们经常会遇到需要判断某个函数是否存존재하다的情况。PHP매우 실용적인 기능이 내장되어 있습니다 <code></span><span><span class="hljs-title function_ invoke__">function_exists</span></span><span>() <?php
</span><span><span class="hljs-keyword">if</span></span><span> (</span><span><span class="hljs-title function_ invoke__">function_exists</span></span><span>(</span><span><span class="hljs-string">'array_merge'</span></span><span>)) {
</span><span><span class="hljs-keyword">echo</span></span><span> </span><span><span class="hljs-string">'array_merge 函数存존재하다'</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">'array_merge 函数不存존재하다'</span></span><span>;
}
?>
이 예에서 Array_Merge 는 PHP의 내장 기능이며 일반적으로 존재합니다.
function_exists () 는 함수가 존재하는지 여부를 감지 할 수 있지만 함수가 PHP에 내장되어 있는지 또는 사용자 정의 된 지 여부는 알 수 없습니다. 함수 이름이 등록되었는지 여부에만 관심이 있습니다.
다시 말해, function_exists ()는 내장 함수 및 사용자 정의 함수와 "동일"하며, 이들이 존재하는지 여부를 판단하고 소스와 구별되지 않는 것만 판단합니다.
내장 기능과 사용자 정의 함수를 구별하려면 get_defined_functions () 함수와 함께 사용할 수 있습니다.
이 함수는 두 개의 키를 포함하는 연관 배열을 반환합니다.
<?php
</span><span><span class="hljs-variable">$allFunctions</span></span><span> = </span><span><span class="hljs-title function_ invoke__">get_defined_functions</span></span><span>();
</span><span><span class="hljs-variable">$functionName</span></span><span> = </span><span><span class="hljs-string">'array_merge'</span></span><span>;
</span><span><span class="hljs-keyword">if</span></span><span> (</span><span><span class="hljs-title function_ invoke__">function_exists</span></span><span>(</span><span><span class="hljs-variable">$functionName</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">$functionName</span></span><span>, </span><span><span class="hljs-variable">$allFunctions</span></span><span>[</span><span><span class="hljs-string">'internal'</span></span><span>])) {
</span><span><span class="hljs-keyword">echo</span></span><span> </span><span><span class="hljs-string">"<span class="hljs-subst">$functionName</span></span></span><span> 내장 기능입니다";
} </span><span><span class="hljs-keyword">elseif</span></span><span> (</span><span><span class="hljs-title function_ invoke__">in_array</span></span><span>(</span><span><span class="hljs-variable">$functionName</span></span><span>, </span><span><span class="hljs-variable">$allFunctions</span></span><span>[</span><span><span class="hljs-string">'user'</span></span><span>])) {
</span><span><span class="hljs-keyword">echo</span></span><span> </span><span><span class="hljs-string">"<span class="hljs-subst">$functionName</span></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">$functionName</span></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">$functionName</span></span></span><span> 不存존재하다";
}
?>
<?php
</span><span><span class="hljs-comment">// 사용자 정의 기능 예제</span></span><span>
</span><span><span class="hljs-function"><span class="hljs-keyword">function</span></span></span><span> </span><span><span class="hljs-title">my_custom_func</span></span><span>(</span><span><span class="hljs-params"></span></span><span>) {
</span><span><span class="hljs-keyword">return</span></span><span> </span><span><span class="hljs-string">'这커스텀 기능입니다'</span></span><span>;
}
</span><span><span class="hljs-variable">$allFunctions</span></span><span> = </span><span><span class="hljs-title function_ invoke__">get_defined_functions</span></span><span>();
</span><span><span class="hljs-comment">// 내장 기능을 확인하십시오</span></span><span>
</span><span><span class="hljs-variable">$func1</span></span><span> = </span><span><span class="hljs-string">'strlen'</span></span><span>;
</span><span><span class="hljs-comment">// 사용자 정의 기능을 확인하십시오</span></span><span>
</span><span><span class="hljs-variable">$func2</span></span><span> = </span><span><span class="hljs-string">'my_custom_func'</span></span><span>;
</span><span><span class="hljs-comment">// 检查不存존재하다函数</span></span><span>
</span><span><span class="hljs-variable">$func3</span></span><span> = </span><span><span class="hljs-string">'non_exist_func'</span></span><span>;
</span><span><span class="hljs-function"><span class="hljs-keyword">function</span></span></span><span> </span><span><span class="hljs-title">checkFunctionType</span></span><span>(</span><span><span class="hljs-params"><span class="hljs-variable">$funcName</span></span></span><span>, </span><span><span class="hljs-variable">$allFunctions</span></span><span>) {
</span><span><span class="hljs-keyword">if</span></span><span> (</span><span><span class="hljs-title function_ invoke__">function_exists</span></span><span>(</span><span><span class="hljs-variable">$funcName</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">$funcName</span></span><span>, </span><span><span class="hljs-variable">$allFunctions</span></span><span>[</span><span><span class="hljs-string">'internal'</span></span><span>])) {
</span><span><span class="hljs-keyword">echo</span></span><span> </span><span><span class="hljs-string">"<span class="hljs-subst">$funcName</span></span></span><span> 내장 기능입니다\n";
} </span><span><span class="hljs-keyword">elseif</span></span><span> (</span><span><span class="hljs-title function_ invoke__">in_array</span></span><span>(</span><span><span class="hljs-variable">$funcName</span></span><span>, </span><span><span class="hljs-variable">$allFunctions</span></span><span>[</span><span><span class="hljs-string">'user'</span></span><span>])) {
</span><span><span class="hljs-keyword">echo</span></span><span> </span><span><span class="hljs-string">"<span class="hljs-subst">$funcName</span></span></span><span> 커스텀 기능입니다\n";
} </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">$funcName</span></span></span><span> 存존재하다,분류되지 않았습니다\n";
}
} </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">$funcName</span></span></span><span> 不存존재하다\n";
}
}
</span><span><span class="hljs-title function_ invoke__">checkFunctionType</span></span><span>(</span><span><span class="hljs-variable">$func1</span></span><span>, </span><span><span class="hljs-variable">$allFunctions</span></span><span>);
</span><span><span class="hljs-title function_ invoke__">checkFunctionType</span></span><span>(</span><span><span class="hljs-variable">$func2</span></span><span>, </span><span><span class="hljs-variable">$allFunctions</span></span><span>);
</span><span><span class="hljs-title function_ invoke__">checkFunctionType</span></span><span>(</span><span><span class="hljs-variable">$func3</span></span><span>, </span><span><span class="hljs-variable">$allFunctions</span></span><span>);
?>
위의 코드를 실행하면 다음을 얻을 수 있습니다.
strlen 내장 기능입니다
my_custom_func 커스텀 기능입니다
non_exist_func 不存존재하다
위의 방법을 마스터하면 PHP 개발에서 기능 관련 논리를보다 유연하게 처리하고, 갈등 또는 반복적 인 정의를 피하고, 코드 견고성을 향상시킬 수 있습니다.