Tôi muốn kiểm tra là một hàm có trong thư viện mà tôi đang tạo hay không. Tôi đã thấy hàm và method_exists, nhưng chưa tìm được cách cho phép tôi gọi chúng trong một ngữ cảnh tương đối. Dưới đây là ví dụ tốt hơn:Tìm hiểu xem phương thức có tồn tại trong một lớp tĩnh
class myClass{
function test1()
{
if(method_exists("myClass", "test1"))
{
echo "Hi";
}
}
function test2()
{
if(method_exists($this, "test2"))
{
echo "Hi";
}
}
function test3()
{
if(method_exists(self, "test3"))
{
echo "Hi";
}
}
}
// Echos Hi
myClass::test1();
// Trys to use 'self' as a string instead of a constant
myClass::test3();
// Echos Hi
$obj = new myClass;
$obj->test2();
Tôi cần có khả năng tạo âm thanh thử nghiệm 3 Xin chào nếu chức năng này tồn tại mà không cần đưa ra khỏi ngữ cảnh tĩnh. Do từ khóa để truy cập vào lớp nên là 'self', vì $ này là dành cho các lớp được gán.
Tại sao phương pháp test1() không đủ? – gapple
Bởi vì tôi muốn đưa điều này vào một lớp học sẽ được mở rộng bởi nhiều lớp học. Tôi có thể sử dụng một hằng số phép thuật để đạt được điều này, nhưng phải có một cách dễ dàng hơn. –