php 如何检查接口存在那些方法

1514582970 发布于 2016/09/18 23:47
阅读 384
收藏 0
PHP

/**
 * Login 的接口实现
 */
interface Login
{

    /**
     * 登陆
     * @return boolean
     */
    public function login();

    /**
     * 公共测试方法
     */
    public function publicdemo();

    /**
     * 公共测试方法
     */
    public function publicdemo2();
}



以上是一个接口 

/**
 * @author saisai
 */
class Logins implements interfaces\Login
{

    public function login()
    {

    }

    public function publicdemo()
    {

    }

    public function publicdemo2()
    {
        ;
    }

    //私有方法
    private function privatefunc()
    {
        //如何在这里知道该类所实现的所有接口的所有方法有哪些
        //或者这个方法是否属于该类所实现的接口
    }

    //受保护的方法
    protected function protectedfunc()
    {
        //或者这个位置
    }

}



这是一个接口的实现  如何在类中得到起所实现的接口的方法有哪些


加载中
0
不是simaguo
不是simaguo
<?php
/**
 * Login 的接口实现
 */
interface Login
{
 
    /**
     * 登陆
     * @return boolean
     */
    public function login();
 
    /**
     * 公共测试方法
     */
    public function publicdemo();
 
    /**
     * 公共测试方法
     */
    public function publicdemo2();
}

interface Login2
{
 
    /**
     * 登陆
     * @return boolean
     */
    public function login2();
 

}


/**
 * @author saisai
 */
class Logins implements Login,Login2
{
 
    public function login()
    {
 
    }
	public function login2()
    {
 
    }
 
    public function publicdemo()
    {
 
    }
 
    public function publicdemo2()
    {
        ;
    }
 
    //私有方法
    private function privatefunc()
    {
        //如何在这里知道该类所实现的所有接口的所有方法有哪些
        //或者这个方法是否属于该类所实现的接口
    }
 
    //受保护的方法
    protected function protectedfunc()
    {
        //或者这个位置
    }
 
}


$rc1 = new ReflectionClass("Logins");

$interfaces = $rc1->getInterfaces();
echo "<pre>";
foreach($interfaces as $interface){
	print_r($interface->getMethods());
	
}



Array
(
    [0] => ReflectionMethod Object
        (
            [name] => login
            [class] => Login
        )

    [1] => ReflectionMethod Object
        (
            [name] => publicdemo
            [class] => Login
        )

    [2] => ReflectionMethod Object
        (
            [name] => publicdemo2
            [class] => Login
        )

)
Array
(
    [0] => ReflectionMethod Object
        (
            [name] => login2
            [class] => Login2
        )

)



返回顶部
顶部