PHP에서 상수를 기본 함수 값으로 사용합니다
문제
이것은 합법적입니까?
<?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)
그렇습니다. 그렇습니다. 유효합니다 :-)
제휴하지 않습니다 StackOverflow