> 백엔드 개발 > PHP 튜토리얼 > 일부만 재정의하려는 경우 PHP 함수에서 기본 인수를 사용하는 방법은 무엇입니까?

일부만 재정의하려는 경우 PHP 함수에서 기본 인수를 사용하는 방법은 무엇입니까?

Patricia Arquette
풀어 주다: 2024-10-29 09:22:30
원래의
584명이 탐색했습니다.

How to Use Default Arguments in PHP Functions When You Only Want to Override Some of Them?

PHP 함수에서 기본 인수 사용

PHP에서 함수 매개변수에 기본값을 할당할 때 해당 제한 사항을 이해하는 것이 중요합니다. 다음과 같은 매개변수가 있는 함수를 생각해 보세요.

<code class="php">function foo($blah, $x = "some value", $y = "some other value")</code>
로그인 후 복사

$x에 대한 기본 인수를 사용하고 싶지만 $y에 대해 다른 값을 지정하려면 어떻게 해야 할까요?

$x에 null을 전달하면 그렇지 않습니다. PHP는 이를 의도적인 값 생략으로 해석하기 때문에 작동하지 않습니다. 이 문제를 해결하려면 다음 접근 방식을 고려하세요.

<code class="php">function foo($blah, $x = null, $y = null) {
    if (null === $x) {
        $x = "some value";
    }

    if (null === $y) {
        $y = "some other value";
    }

    // Code here!
}</code>
로그인 후 복사

이 수정을 통해 foo('blah', null, 'test')를 호출하여 $x에 대한 기본값을 사용하고 다음에 대한 사용자 지정 값을 지정할 수 있습니다. $y.

PHP의 기본 매개변수 메커니즘이 함수의 마지막 인수에 적용된다는 점에 유의하는 것이 중요합니다. 원하는 인수가 마지막 인수가 아닌 경우 기본 인수를 생략할 수 없습니다.

다양한 매개변수 개수와 유형을 처리하려는 상황에서는 보다 유연한 접근 방식을 고려할 수 있습니다.

<code class="php">public function __construct($params = null)
{
    if ($params instanceof SOMETHING) {
        // Single parameter of type SOMETHING
    } elseif (is_string($params)) {
        // Single string argument
    } elseif (is_array($params)) {
        // Array of properties
    } elseif (func_num_args() == 3) {
        // 3 parameters passed
    } elseif (func_num_args() == 5) {
        // 5 parameters passed
    } else {
        throw new \InvalidArgumentException("Could not figure out parameters!");
    }
}</code>
로그인 후 복사

이 방법은 다양한 입력 시나리오를 처리하는 데 더 큰 유연성을 제공합니다.

위 내용은 일부만 재정의하려는 경우 PHP 함수에서 기본 인수를 사용하는 방법은 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

원천:php.cn
본 웹사이트의 성명
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.
저자별 최신 기사
인기 튜토리얼
더>
최신 다운로드
더>
웹 효과
웹사이트 소스 코드
웹사이트 자료
프론트엔드 템플릿