>  기사  >  백엔드 개발  >  다른 것을 유지하면서 PHP에서 기본 함수 인수를 재정의하는 방법은 무엇입니까?

다른 것을 유지하면서 PHP에서 기본 함수 인수를 재정의하는 방법은 무엇입니까?

Linda Hamilton
Linda Hamilton원래의
2024-10-30 21:18:03614검색

How to Override Default Function Arguments in PHP While Maintaining Others?

PHP에서 기본 함수 인수 재정의

PHP 함수는 함수 호출 시 대체 값을 설정하기 위해 기본 인수 사용을 지원합니다. 그러나 이전 인수의 기본값을 유지하면서 특정 인수를 설정하는 것은 어려울 수 있습니다.

다음 함수를 고려하세요.

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

$x 및 $y의 기본 인수는 "some"입니다. 값'과 '다른 값'을 각각 사용합니다. 하지만 $x에 기본값을 사용하면서 $y에 대한 기본값을 재정의하려면 어떻게 해야 할까요?

Null 값으로 재정의

다음과 같이 null을 사용하여 기본값을 재정의하려고 시도합니다.

<code class="php">foo("blah", null, "test"); // Does not work</code>

또는

<code class="php">foo("blah", "", "test"); // Does not work</code>

원하는 결과를 얻을 수 없습니다.

변수 이름으로 설정

또 다른 접근 방식은 기본 변수를 명명된 변수에 할당하는 것입니다.

<code class="php">foo("blah", $x, $y = "test");</code>

과 같은 변수도 기본값을 재정의하지 못합니다.

재정의 해결 방법

이 문제를 해결하려면 다음과 같이 함수 선언을 수정하세요.

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

    if (null === $y) {
        $y = "some other value";
    }
}</code>

이를 통해 다음과 같은 호출을 할 수 있습니다.

<code class="php">foo('blah', null, 'non-default y value');</code>

$x의 기본값을 계속 유지할 수 있습니다.

참고: 기본 인수만 함수의 마지막 인수로 작동합니다. 함수 정의 내에서 기본값을 선언할 때 매개변수를 생략하고 다음 매개변수를 재정의하는 것은 불가능합니다.

위 내용은 다른 것을 유지하면서 PHP에서 기본 함수 인수를 재정의하는 방법은 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

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