
trait_exists 함수를 사용하여 특정 메소드가 존재하는지 확인하려면, 다음과 같은 방법을 사용할 수 있습니다.
#hostingforum.kr
php
trait A {
public function method1() {
echo "Trait A의 method1() 메소드가 호출되었습니다.";
}
}
trait B {
// method1() 메소드가 정의되어 있지 않습니다.
}
class TestClass {
use A, B {
A::method1 insteadof B;
}
}
$testClass = new TestClass();
echo var_export(trait_exists('A', 'method1'), true) . "n"; // true
echo var_export(trait_exists('B', 'method1'), true) . "n"; // false
$testClass->method1(); // Trait A의 method1() 메소드가 호출되었습니다.
위의 예시에서, trait_exists 함수를 사용하여 method1() 메소드가 Trait A에 존재하는지 확인하는 코드는 다음과 같습니다.
#hostingforum.kr
php
echo var_export(trait_exists('A', 'method1'), true) . "n"; // true
Trait B에 method1() 메소드가 정의되어 있지 않기 때문에, trait_exists 함수를 사용하여 method1() 메소드가 Trait B에 존재하는지 확인하는 코드는 다음과 같습니다.
#hostingforum.kr
php
echo var_export(trait_exists('B', 'method1'), true) . "n"; // false
Trait A와 Trait B를 사용하여 method1() 메소드를 호출할 때, method1() 메소드가 존재하지 않는 Trait B를 사용하여 method1() 메소드를 호출하면, PHP는 다음과 같은 오류를 발생시킵니다.
#hostingforum.kr
php
Fatal error: Uncaught Error: Call to undefined method TestClass::method1()
Trait A와 Trait B를 사용하여 method1() 메소드를 호출할 때, method1() 메소드가 존재하는 Trait A를 사용하여 method1() 메소드를 호출하면, 다음과 같은 결과가 나옵니다.
#hostingforum.kr
php
Trait A의 method1() 메소드가 호출되었습니다.
2025-05-31 21:03