2013-08-31 7 views
0

함수/메서드 호출로 인수를 보내는 데 문제가 있습니다. 해당 함수가 클래스 내에있을 때 문제가 있습니다.인수가있는 클래스에서 함수 호출

내가 이렇게 :

class_name 클래스 내부의 기능 function_name 도달에 성공
echo class_name::function_name('string_arg'); 

. 그러나 문자열 인 인수 string_arg은 함수가 실행될 때 가져 오지 않습니다. 그것은 함수가 인수를받지 못하거나 그냥 읽지 않는 것과 같습니다.

정보 :이 호출은 동일한 클래스 내의 다른 함수에서 수행됩니다.

여기서 :: 클래스 호출 메소드로 잘못된 것이 있습니까? 그것은 내가 함수에 도달 할 수 있다는 것을 혼란스럽게하지만, 나는 여전히 함수의 기본 행동만을 얻는다.

+0

는 "[범위 결정 연산자 (http://php.net/manual/en/language.oop5.paamayim-nekudotayim.php), 정적 상수 재정의 속성에 대한 액세스를 허용하는 토큰 또는 클래스의 메서드를. " 클래스 코드를 게시하십시오. 문제가 있어야합니다. – elclanrs

답변

1

정적이 아닌 메소드에 class :: function_name()을 사용하는 사용자가 거의 없습니다. 당신이 그것을 사용하는 이유가 있습니까?

시도해 보셨습니까?

<?php echo $this->function_name($str); ?> 
1

이것은 함수가 부작용을 사용하는지 여부에 따라 달라집니다. 이 함수가 단순히 값을 반환하면 클래스 자체와 상호 작용할 필요가 없으므로 아무 문제가 없습니다. 문제는 당신이 당신의 객체 밖에서 클래스 메소드로 호출하려고 시도하는 것일 수 있다고 생각합니다. 호출의 앞 부분에 클래스 파트를 추가 할 때 (예 : class_name::) 실제로는 클래스와 동일한 클래스를 호출하지 않습니다. 하나는 현재 개체에 있으므로 해당 개체의 필드에 영향을 미치지 않거나 사용하지 않습니다. function_name('string')으로 전화를 걸면 호출하는 객체의 필드가 사용됩니다.

관련 문제