2013-10-03 7 views
2

몇 가지 PHP 함수가 있는지 확인하려고합니다. Source는 함수 이름을 가진 배열이어야합니다. 불행히도 이것은 작동하지 않는 것 같습니다. 나는 항상 부정적인 수익을 얻습니다 :php 함수가 배열을 소스로 사용할 수 있는지 확인하십시오.

// Array with function names 
$func_array = array("die", 
        "echo", "empty", "exit", "eval", 
        "include", "include_once", "isset", 
        "list", 
        "print", 
        "require", "require_once", 
        "unset","exec" 
        ); 

// Check Function 
function func_avail($funcav) { 
    if (function_exists($funcav)) { 
     echo "$funcav is enabled<br/>"; 
    } 
    else { 
     echo "$funcav is not enabled<br/>"; 
    } 

} 

// Loop through array 
for ($x = 0; $x < count ($func_array); $x++) 
{ 
     func_avail($func_array[$x]); 
} 

질문 1 : 왜 이것이 작동하지 않습니까? (Ouput은 항상 활성화되지 않습니다)

질문 2 : 활성화되지 않았 으면 (function_exists = 0) php.ini에서이 기능이 비활성화되었거나이 PHP 버전에서 사용할 수 없음을 의미 할 수 있습니다. F.E. 새로운 PHP 버전에서만 사용할 수있는 함수를 사용하려고합니다.

친절하고 감사합니다.

토니

+0

모두가 기능은 아닙니다. 일부는 언어 레벨 구문 구조 또는 의사 함수입니다. – mario

+0

버전 번호를 확인하십시오 – Anthony

+0

다음은 함수에 실수 할 수있는 언어 구문 목록입니다. http://php.net/manual/en/reserved.keywords.php – Anthony

답변

0

질문 1 : 왜이 작동하지 않는 이유는 무엇입니까? OUPUT는 exec()을 제외하고 ...

을 사용할 수 없습니다 항상. 어떤 것이 맞습니까? 다른 항목은 함수가 아니며 언어 구조입니다. (지금까지 내가 아는 한, 언어 구조를 사용하지 않도록 할 수있는 방법이 없습니다.)

function_exists()에 대한 매뉴얼 페이지는 것을 확인 :

이 기능은 include_onceecho로, 구조에 대한 FALSE를 반환합니다.

 

질문 2 : 기능은 php.ini 파일 내에서 비활성화되었습니다 또는이도를 의미 할 수 있다는 것을 의미을 사용하지 않습니다 (= 0 function_exists)이 PHP를 사용할 수 없습니다 입니다 번역. F.E. 나는 최신 PHP 버전에서만 사용할 수있는 함수 을 사용하려고합니다.

그것은 의미

정확히 the manual says :

확인 정의 함수의 목록을 모두 내장 (내부) 및 사용자 정의 FUNCTION_NAME에 대해.

참고 : 구성 또는 컴파일 옵션으로 인해 함수 자체를 사용할 수없는 경우에도 함수 이름이있을 수 있습니다 (이미지 함수가 예제 임).

+0

안녕하세요 알바로, 알겠습니다.function_exists는 실제 php 함수만을 검사하므로 다른 모든 것들은 laguage 구문을 사용하여 출력을 사용할 수 없습니다. 이것 뒤에 내 생각은 phpxref와 함께 응용 프로그램 내에서 모든 PHP 함수를 사용하고 필요한 모든 것이 여전히 사용 가능한지 서버 또는 PHP 업데이트 검사의 경우에 사용하는 것입니다. –

+0

그건 믿을 수 없어. 프로그램에서 나중에 추가 된 함수 인수를 사용할 수 있습니다. –

+0

사실 ... 나는 PHP 버전 문제를 해결하는 것에 관해 다시 생각해야합니다. 고맙습니다. –

관련 문제