2014-12-02 1 views
0

함수를 다른 함수에서 인수의 기본값으로 사용할 수 있습니까? 아래 예제에서는 기본 값으로 워드 프레스 기능 get_the_title()를 사용하려고 해요 : PHP에서 다른 함수의 기본 인수로 함수를 사용할 수 있습니까?

function GetPageDepartment($department = get_the_title()) { 
    return $department; 
} 

은 그대로, 괄호는 구문 분석 오류의 원인이된다. 이 문제를 해결할 수있는 방법이 있습니까? 아니면 함수 값을 기본값 이외의 다른 변수에 전달해야합니까?

여기서 실제 코드는 단지 get_the_title()을 반환하기 때문에 무의미한 점을 알고 있습니다. 그러나 실제로 논쟁과 관련이있는 것은 질문과 관련이 없으므로 예제와 같습니다.

+2

함수가 루프 내에서 호출되는 한, 함수 내에서 인수로 전달하지 않고 get_the_title()을 사용할 수 있습니다. – rnevius

+0

@mevius : 그렇게 할 수 있습니다! 그게 내 실제 문제를 효과적으로 해결하지만, 나는 WordPress의 독점적 인 PHP에서의 대답에 대해 궁금해서 질문을 떠날 것이다. 감사! – BFWebAdmin

+1

btw : 당신은 이미 그 예일 뿐이라고 말했지 만 : GETSomething 함수는 뭔가를 인쇄합니다. – VolkerK

답변

1

대답은 "아니요 예,하지만 아직 ... ..."입니다.
아니요, PHP 5.6을 사용하면 함수를 함수/메소드의 기본값으로 할당 할 수 없습니다.
예. 문자열을 할당 할 수 있으며 해당 매개 변수/변수를 함수 컨텍스트 (예 : echo $department();)로 사용하면 문자열이 함수 이름으로 처리되고 get_the_title()이 호출됩니다. 하지만 ... 문자열 -> 함수 이름 관계에 의존해야한다는 것은 다소 추한 것입니다. 그러나 ... 누가 신경 쓰냐?


편집 : 당신의 고려 ....

<?php 
function get_the_title() { return "the title"; } 

function GetPageDepartment(callable $department=null) { 
    if (null==$department) { 
     $department = 'get_the_title'; 
    } 
    return '<'.$department().'>'; 
} 


echo GetPageDepartment(); 
+1

I care, @VolkerK. 나는 걱정한다. – BFWebAdmin

+1

나는 조금 더 엄격함을 원한다. – VolkerK

0

당신이, 내가 대한 플럼 프드하지 사용 결국이 코드

<?php 

function get_the_title(){ 
    return 'this is the title'; 
} 
$temp = get_the_title(); 
function GetPageDepartment($department) { 
    echo $department; 
} 

GetPageDepartment($temp); 
0

수 없음 :

function GetPageDepartment($department = null) { 
    $department = $department ?: get_the_title(); //Sets value if null. 
} 

$ departmen의 값을 설정합니다. 다른 값이 설정되어 있지 않으면 get_the_title()합니다.