2016-07-29 6 views
-1

나는 이것이 완전히 쓰레기 같은 질문이라는 것을 알고있다. 그러나 나는 완전히 혼란스럽고 PHP에서 함수가 호출 될 때 파일을 포함하는 방법을 모른다.()함수를 호출 할 때 파일을 포함시킬 때

예컨대 난 기능 myfunction.php 같은 함수 이름 (100)에게 파일에 격납되어을 같은 디렉토리 이름이이 파일은 myFunction이있다; 내가

include 'Function/'.$functionName.'.php'; // here file should auto include. 
myfunction(); // i called this function here so when i called this function then myfunction.php file should auto include in above line 

처럼이 함수를 호출 할 때

그래서 자동으로 파일을 포함 할 수있는 방법이있다. 나에게 길을 제안하십시오.

+0

? 'Function' 디렉토리에'$ functionName'에 따라 이름 붙여진 유효한 파일이 있다면 어떤 문제도 있어서는 안됩니다. – Umair

+0

당신이 할 수있는 일은 필요한 모든 include가 들어있는 includes.php를 만드는 것입니다. 전화 해. 이 함수는 $ functionName이 포함 라인 위에 선언되어 있지 않으면 자동으로 포함되지 않습니다. – Danimal

+0

* "함수가"* -'function myfunction() {여기에 포함}'이라고 불리면 함수를 호출합니다. TBH, 내 머리를 감싸는 데 힘든 시간을 보내고 있습니다. –

답변

2

정의되지 않은 함수를 호출하면 정의되지 않은 오류가 발생하여 실행이 중지되면 실행이 중지됩니다. 오류를 잡을 수 있더라도 함수 출력을 원래 변수로 반환 할 수는 없습니다.

나의 추천이 페이지의 시작 부분에서 모든 기능을 포함 : 그렇지 않으면

foreach (glob("Function/*.php") as $filename) 
{ 
    include $filename; 
} 

, 수동으로 호출 할 때마다,이 같은 뭔가를해야 할 것 :

try { 
    $ret = example_function(); 
} catch (Exception $e) { 
    include('Function/example_function.php'); 
    $ret = example_function(); 
} 

당신은 할 수 그러나 다음과 같이 사용자 정의 함수를 작성하십시오.

function myFunction() 
{ 
    $args = func_get_args(); 

    $func_name = array_shift($args); 

    if (!function_exists($func_name)) { 
     include('Function/' . $func_name . '.php'); 
    } 

    return call_user_func_array($func_name, $args); 
} 

myFunction('testFunction', $param1, $param2)으로 기능을 호출하십시오.

클래스를로드하는 경우이 작업이 더 쉬워집니다. PHP autoloading을 사용하여이 작업을 수행 할 수 있습니다.

많은 객체 지향 응용 프로그램 개발자는 클래스 정의 당 하나의 PHP 소스 파일을 만듭니다. 가장 큰 불편 중 하나는 각 스크립트의 시작 부분에 필요한 포함 목록의 긴 목록을 작성해야한다는 것입니다 (각 클래스에 하나씩).

PHP 5에서는 더 이상 필요하지 않습니다. spl_autoload_register() 함수는 자동 로더를 여러 개 등록하여 클래스 및 인터페이스가 현재 정의되지 않은 경우 자동으로로드 할 수 있도록합니다. 자동 로더를 등록함으로써 PHP는 에러가 발생하기 전에 클래스 나 인터페이스를로드 할 마지막 기회를 얻습니다.

당신이 본 어떤 오류
0
당신은 방법 오버로드를 사용하려고 할 수

, __call

class MethodTest 
{ 
    public function __call($functionName, $arguments) 
    { 
     include 'Function/'.$functionName.'.php'; 
     return $functionName($arguments); 
    } 

} 


$obj = new MethodTest; 
$obj->myCustomFunc("myCustomParams") 
관련 문제