if (is_callable(array('test_class', 'test_func4'))) { test_class::test_func4(); } else { echo "test_func4 isn't callable from child\n"; } } } $object = new test_class(); $object->test(); if (is_callable(array($object, 'test_func1'))) { $object->test_func1(); } else { echo "test_func1 isn't callable from outside\n"; } if (is_callable(array($object, 'test_func2'))) { $object->test_func2(); } else { echo "test_func2 isn't callable from outside\n"; } if (is_callable(array('test_class', 'test_func3'))) { test_class::test_func3(); } else { echo "test_func3 isn't callable from outside\n"; } if (is_callable(array('test_class', 'test_func4'))) { test_class::test_func4(); } else { echo "test_func4 isn't callable from outside\n"; } $object = new foo(); $object->test();