나는 자신의 메서드를 가진 클래스가 있고 다른면에는 외부 메서드가 포함 된 PHP 파일이 있습니다. 외부 함수를 포함하는 클래스의 내부는 불가능한 문서에서 명확합니다.클래스의 외부 PHP 파일에서 메서드를 포함
클래스에서이 함수를 어떻게 구현할 수 있습니까? 다른 클래스를 만들고 첫 번째 클래스를 확장하면 옵션이 될 수 없습니다.
나는 자신의 메서드를 가진 클래스가 있고 다른면에는 외부 메서드가 포함 된 PHP 파일이 있습니다. 외부 함수를 포함하는 클래스의 내부는 불가능한 문서에서 명확합니다.클래스의 외부 PHP 파일에서 메서드를 포함
클래스에서이 함수를 어떻게 구현할 수 있습니까? 다른 클래스를 만들고 첫 번째 클래스를 확장하면 옵션이 될 수 없습니다.
당신은 그들이 자신의 클래스에 동봉되지 않은 경우에도, 클래스에서 외부 함수를 호출 할 수 있습니다 실제 클래스 파일에는 include
이 없을 것입니다.
그건 나에게 너무 마술처럼 보입니다. 그러나 당신이 여전히 각 함수에 대한 래퍼를 선언해야하므로 (또는 더 나쁜 경우에는'__call()'을 사용하십시오), 그 점을 다소 상회합니다. –
그것은 위임이라고하지 마술 적이 아닙니다. OP가 단순히 외부 함수를 호출하여 모든 작업을 수행하거나 모든 함수를 클래스의 일부로 감추려는 의도인지 여부는 확실하지 않습니다. 귀하가 후자를 추측하고 있다고 생각합니다. 사실 일 수 있습니다. 당신은'__call()'을 사용할 필요가 없으며 마법이 없다 - 그냥 함수를 호출하고있다. 내 경우에 – Fenton
작동합니다. – kakuki
수 없습니다. 메소드 및 필드를 포함하여 모든 클래스 정의는 동일한 파일에 있어야합니다. 동일한 클래스를 서로 다른 두 파일로 선언 할 수 없습니다.
확장하거나 traits (PHP 5.4.x 이상인 경우)을 사용하는 것이 유일한 옵션입니다.
Global.php
<?php
function doSomething() {
return 'Hello';
}
?>
<?php
include_once('Global.php');
class ExampleClass
{
public function example() {
return doSomething();
}
}
?>
ExampleClass.php
을 :
포함 할 파일에 ... 클래스의 이러한 실제 메소드 또는 이러한 자유 부동 함수입니까? – prodigitalson
무료 부동 함수입니다. – kakuki
하지 마십시오. 클래스의 요점은 기능을 캡슐화하고 관련 코드를 여러 파일에 전파하지 못하게하는 것입니다. – vascowhite