문제

이것은 합법적입니까?

<?php

function ftw($foo = 'pwnage', $nub = MENU_DEFAULT_VALUE, $odp = ODP_DEFAULT_VALUE) {
      //lots_of_awesome_code
}

?>

어디 MENU_DEFAULT_VALUE 그리고 ODP_DEFAULT_VALUE 이전에 파일에 정의 된 상수입니다.

도움이 되었습니까?

해결책

예, 그것은 합법적입니다.

에서 매뉴얼:

기본값은 변수, 클래스 멤버 또는 함수 호출이 아닌 상수 표현식이어야합니다.

상수는 그 청구서에 완벽하게 맞습니다.

다른 팁

OOP 컨텍스트에서는 클래스 멤버 상수를 기본 메소드 인수 값으로 사용할 수도 있습니다.

class MyClass
{
    const A = 1;

    public function __construct($arg = self::A)
    {
        echo $arg;
    }
}

당신은 왜 시도하지 않습니까?

그래도 지금 당장 테스트 할 수있는 경우 다음 코드입니다.

define('MENU_DEFAULT_VALUE', 10);
define('ODP_DEFAULT_VALUE', 'hello');

function ftw($foo = 'pwnage', $nub = MENU_DEFAULT_VALUE, $odp = ODP_DEFAULT_VALUE) {
    var_dump($foo);
    var_dump($nub);
    var_dump($odp);
}

ftw();

이 출력을 제공합니다.

string 'pwnage' (length=6)
int 10
string 'hello' (length=5)

그렇습니다. 그렇습니다. 유효합니다 :-)

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top