Просмотр поста

.
Zheka12345

Вот учу ооп, есть такой код

abstract class AUser {
    abstract function showInfo();
}


    //создаем класс
    class User extends AUser{
        public $name;
        public $login;
        public $password;
        const INFO_TITLE = 'Данные пользователя:<br/>';
        function showTitle(){
            print (self::INFO_TITLE);
        }
        //создаем метод
        function showInfo(){
            echo 'Имя - '.$this->name.'<br/>';
            echo 'Логин - '.$this->login.'<br/>';
            echo 'Пароль - '.$this->password.'<br/>';
        }
        function __construct ($n = '',$l = '',$p = ''){
            try{
                if($n == '' or $l == '' or $p == '')
                    throw new Exception('введены не все данные');
                $this->name = $n;
                $this->login = $l;
                $this->password = $p;
            }catch(Exception $e){
                echo $e->getMessage();
            }
            
        }
        function __clone(){
            $this->name = 'Guest';
            $this->login = 'guest';
            $this->password = 'qwerty';
        }
    }
    //создаем объект 1
    $ob1 = new User('zhenya','zheka','23534');
    //print (User::INFO_TITLE);
    echo $ob1->showTitle();
    echo $ob1->showInfo().'<br/>';//Вызов метода
    //создаем объект 2
    $ob2 = new User('lol','loh','6546');
    //print (User::INFO_TITLE);
    echo $ob1->showTitle();
    echo $ob2->showInfo().'<br/>';//Вызов метода
    //создаем объект 3
    $ob3 = new User('vasya','vasya','13765495');
   // print (User::INFO_TITLE);
   echo $ob1->showTitle();
    echo $ob3->showInfo().'<br/>';//Вызов метода
    $ob4 = clone $ob1;//Копирование объекта
    echo $ob4->showInfo().'<br/>';//Вызов метода
    
    interface ISuperUser {
    function getInfo();
    }

class SuperUser extends User implements ISuperUser{
    public $role;
    function __construct ($n,$l,$p,$r){
        parent::__construct($n,$l,$p);
        $this->role = $r;
    }
    function showinfo(){
        parent::showInfo();
        echo 'Роль - '.$this->role.'<br/>';
        
    } 
    function getInfo(){
        $arr = array();
        foreach($this as $k=>$v){
            $arr[$k] = $v;
            return $arr;
        }
    }  
}
$ob5 = new SuperUser('Super admin','root','pass','admin');
echo $ob5->showInfo().'<br/>';
print_r ($ob5->getInfo());

print_r ($ob5->getInfo()); должно вывести все содержимое массива, а выводит не все.
Где ошибка?