PHP에서 기능은 프로그래밍에 없어서는 안될 부분입니다. 여러 번 우리가 정의하는 함수는 다른 수의 매개 변수를 수신해야하며, 경우에 따라 기능이 수신 할 매개 변수의 수를 미리 알 수 없습니다. 현재 func_num_args () 함수가 특히 중요해집니다. 기능 매개 변수 수를 얻기 위해 PHP가 제공하는 내장 기능입니다.
func_num_args ()는 현재 함수가 전달되는 매개 변수 수를 얻는 데 사용할 수있는 매우 실용적인 기능입니다. 함수에는 매개 변수가없고 리턴 값은 정수이며 현재 함수에 의해 수신 된 매개 변수 수를 나타냅니다.
<span><span><span class="hljs-function"><span class="hljs-keyword">function</span></span></span><span> </span><span><span class="hljs-title">demo</span></span><span>(</span><span><span class="hljs-params"></span></span><span>) {
</span><span><span class="hljs-variable">$num_args</span></span><span> = </span><span><span class="hljs-title function_ invoke__">func_num_args</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">"함수로 전달되는 매개 변수의 수는 다음과 같습니다: "</span></span><span> . </span><span><span class="hljs-variable">$num_args</span></span><span>;
}
</span><span><span class="hljs-title function_ invoke__">demo</span></span><span>(</span><span><span class="hljs-number">1</span></span><span>, </span><span><span class="hljs-number">2</span></span><span>, </span><span><span class="hljs-number">3</span></span><span>); </span><span><span class="hljs-comment">// 산출:함수로 전달되는 매개 변수의 수는 다음과 같습니다: 3</span></span><span>
</span></span>
위의 코드에서 데모 함수는 3 가지 매개 변수 인 func_num_args ()를 반환합니다.
일반적으로 함수를 정의 할 때 기능이 수용 해야하는 매개 변수의 수를 미리 알 수 있습니다. 그러나 경우에 따라, 특히 함수가 불확실한 수의 매개 변수를 동적으로 받아 들여야 할 때 FUNC_NUM_ARGS () 는 매우 유용합니다. 예를 들어, 전달 된 매개 변수 수에 따라 다른 동작을 결정하거나 일부 기본 매개 변수에 대한 기본값을 제공 할 수 있습니다.
func_num_args () 및 func_get_args () 는 일반적으로 함께 사용됩니다. func_get_args ()는 모든 들어오는 매개 변수를 포함하는 배열을 얻는 데 사용되며 func_num_args ()는 들어오는 매개 변수 수를 얻는 데 사용됩니다. 이 두 기능을 결합하여 기능 매개 변수를보다 유연하게 처리 할 수 있습니다.
<span><span><span class="hljs-function"><span class="hljs-keyword">function</span></span></span><span> </span><span><span class="hljs-title">example</span></span><span>(</span><span><span class="hljs-params"></span></span><span>) {
</span><span><span class="hljs-variable">$num_args</span></span><span> = </span><span><span class="hljs-title function_ invoke__">func_num_args</span></span><span>(); </span><span><span class="hljs-comment">// 매개 변수 수를 얻으십시오</span></span><span>
</span><span><span class="hljs-variable">$args</span></span><span> = </span><span><span class="hljs-title function_ invoke__">func_get_args</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">"함수로 전달되는 매개 변수의 수는 다음과 같습니다: <span class="hljs-subst">$num_args</span></span></span><span>\n";
</span><span><span class="hljs-keyword">echo</span></span><span> </span><span><span class="hljs-string">"매개 변수 목록:\n"</span></span><span>;
</span><span><span class="hljs-title function_ invoke__">print_r</span></span><span>(</span><span><span class="hljs-variable">$args</span></span><span>); </span><span><span class="hljs-comment">// 打印매개 변수 목록</span></span><span>
}
</span><span><span class="hljs-title function_ invoke__">example</span></span><span>(</span><span><span class="hljs-number">1</span></span><span>, </span><span><span class="hljs-string">'Hello'</span></span><span>, </span><span><span class="hljs-literal">true</span></span><span>, </span><span><span class="hljs-number">3.14</span></span><span>);
</span></span>
산출:
<span><span>함수로 전달되는 매개 변수의 수는 다음과 같습니다: </span><span><span class="hljs-number">4</span></span><span>
매개 변수 목록:
Array
(
[</span><span><span class="hljs-meta">0</span></span><span>] => </span><span><span class="hljs-number">1</span></span><span>
[</span><span><span class="hljs-meta">1</span></span><span>] => Hello
[</span><span><span class="hljs-meta">2</span></span><span>] => </span><span><span class="hljs-number">1</span></span><span>
[</span><span><span class="hljs-meta">3</span></span><span>] => </span><span><span class="hljs-number">3.14</span></span><span>
)
</span></span>
func_num_args () 는 특정 시나리오에서 매우 유용하며 다음은 일반적인 사용 시나리오입니다.
PHP에서는 여러 매개 변수를 수락하는 함수를 정의 할 수 있습니다. 예를 들어, func_num_args () 를 통해 array_sum -like function을 구현하여 여러 숫자를 매개 변수로 받아들이고 계산 및 반환 할 수 있습니다.
<span><span><span class="hljs-function"><span class="hljs-keyword">function</span></span></span><span> </span><span><span class="hljs-title">custom_sum</span></span><span>(</span><span><span class="hljs-params"></span></span><span>) {
</span><span><span class="hljs-variable">$sum</span></span><span> = </span><span><span class="hljs-number">0</span></span><span>;
</span><span><span class="hljs-variable">$num_args</span></span><span> = </span><span><span class="hljs-title function_ invoke__">func_num_args</span></span><span>(); </span><span><span class="hljs-comment">// 매개 변수 수를 얻으십시오</span></span><span>
</span><span><span class="hljs-keyword">for</span></span><span> (</span><span><span class="hljs-variable">$i</span></span><span> = </span><span><span class="hljs-number">0</span></span><span>; </span><span><span class="hljs-variable">$i</span></span><span> < </span><span><span class="hljs-variable">$num_args</span></span><span>; </span><span><span class="hljs-variable">$i</span></span><span>++) {
</span><span><span class="hljs-variable">$sum</span></span><span> += </span><span><span class="hljs-title function_ invoke__">func_get_arg</span></span><span>(</span><span><span class="hljs-variable">$i</span></span><span>); </span><span><span class="hljs-comment">// 특정 매개 변수를 얻습니다</span></span><span>
}
</span><span><span class="hljs-keyword">return</span></span><span> </span><span><span class="hljs-variable">$sum</span></span><span>;
}
</span><span><span class="hljs-keyword">echo</span></span><span> </span><span><span class="hljs-title function_ invoke__">custom_sum</span></span><span>(</span><span><span class="hljs-number">1</span></span><span>, </span><span><span class="hljs-number">2</span></span><span>, </span><span><span class="hljs-number">3</span></span><span>, </span><span><span class="hljs-number">4</span></span><span>); </span><span><span class="hljs-comment">// 산출: 10</span></span><span>
</span></span>
func_num_args ()는 전달 된 매개 변수 수를 기반으로 다른 작업을 수행하려는 경우 매우 유용합니다. 예를 들어, 사용자가 입력 한 매개 변수를 처리하는 기능을 설계 할 수 있습니다. 매개 변수 수가 1 인 경우 정보를 출력하십시오. 2 인 경우 다른 처리를 수행하십시오.
<span><span><span class="hljs-function"><span class="hljs-keyword">function</span></span></span><span> </span><span><span class="hljs-title">process_input</span></span><span>(</span><span><span class="hljs-params"></span></span><span>) {
</span><span><span class="hljs-variable">$num_args</span></span><span> = </span><span><span class="hljs-title function_ invoke__">func_num_args</span></span><span>();
</span><span><span class="hljs-keyword">if</span></span><span> (</span><span><span class="hljs-variable">$num_args</span></span><span> == </span><span><span class="hljs-number">1</span></span><span>) {
</span><span><span class="hljs-keyword">echo</span></span><span> </span><span><span class="hljs-string">"단일 입력 처리: "</span></span><span> . </span><span><span class="hljs-title function_ invoke__">func_get_arg</span></span><span>(</span><span><span class="hljs-number">0</span></span><span>);
} </span><span><span class="hljs-keyword">elseif</span></span><span> (</span><span><span class="hljs-variable">$num_args</span></span><span> == </span><span><span class="hljs-number">2</span></span><span>) {
</span><span><span class="hljs-keyword">echo</span></span><span> </span><span><span class="hljs-string">"두 개의 입력을 처리합니다: "</span></span><span> . </span><span><span class="hljs-title function_ invoke__">func_get_arg</span></span><span>(</span><span><span class="hljs-number">0</span></span><span>) . </span><span><span class="hljs-string">" 그리고 "</span></span><span> . </span><span><span class="hljs-title function_ invoke__">func_get_arg</span></span><span>(</span><span><span class="hljs-number">1</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><span><span class="hljs-title function_ invoke__">process_input</span></span><span>(</span><span><span class="hljs-string">"Hello"</span></span><span>); </span><span><span class="hljs-comment">// 산출: 단일 입력 처리: Hello</span></span><span>
</span><span><span class="hljs-title function_ invoke__">process_input</span></span><span>(</span><span><span class="hljs-string">"Hello"</span></span><span>, </span><span><span class="hljs-string">"World"</span></span><span>); </span><span><span class="hljs-comment">// 산출: 두 개의 입력을 처리합니다: Hello 그리고 World</span></span><span>
</span></span>
func_num_args ()는 함수 내에서만 사용할 수 있습니다 . 기능 본문 내에서 들어오는 매개 변수를 동적으로 처리하는 데 사용되며 함수 외부에서 호출 할 수 없습니다.
반환 된 매개 변수 수는 현재 함수의 매개 변수 수입니다 . 함수 외부의 기본 매개 변수를 정의하더라도 func_num_args ()는 여전히 전달 된 실제 매개 변수 수를 반환합니다.
func_num_args () 는 PHP에서 매우 실용적인 기능입니다. 이를 통해 기능 내에서 전달되는 매개 변수 수를 동적으로 얻을 수있어 매개 변수 수를 모르고 다른 요구를 유연하게 처리 할 수 있습니다. func_get_args ()를 결합함으로써 기능의 확장 성과 유연성을 더욱 향상시키고 많은 실제 문제를 해결할 수 있습니다. PHP 초보자의 경우 func_num_args () 및 func_get_args () 가 어떻게 프로그래밍 효율성과 유연성을 크게 향상시키는 지 이해하고 마스터합니다.