2016-01-12 4 views
0

Как я могу получить значение класса A, расширяющего класс B?Расширение классов php

class A{ 
    private $a; 

    public function setA($a){ $this->a = $a; } 
    public function getA(){ return $this->a; } 
} 
class B extends A{ 

} 

$a = new A(); 
$a->setA("Hello"); 

$b = new B(); 
echo($b->getA()); //empty 
+0

Ваш вопрос непонятен. Что именно вы пытаетесь достичь? – jbafford

+0

uh, 'класс B расширяет A {...}'? как написано, у вас нет наследования нигде. A и B полностью независимы. –

+0

@jbafford, я хочу называть функцию getA на классе B – user2647038

ответ

0

Учитывая, что кажется, что вы хотите создать экземпляр класса B, который поддерживает уже заселенных значения существующего экземпляра класса A (в то время как не просто быть ссылка на него), вы хотите использовать Функция PHP clone.

class A{ 
    private $a; 

    public function setA($a){ $this->a = $a; } 
    public function getA(){ return $this->a; } 
} 


class B extends A{ 
    // 
} 


$a = new A(); 
$a->setA("Hello"); 

$b = clone $a; 

echo $b->getA(); // output is "Hello" 
+0

Своя работа! Благодаря! – user2647038

+1

'class B' похоже, что не имеет значения. Если OP действительно нуждается в 'B', который имеет свой набор' $ a', это не будет сделано. В этом примере '$ b' по-прежнему остается' A'. Но трудно сказать из вопроса, действительно ли 'B' действительно нужен или если он был введен только потому, что OP не знал о клоне. –

+0

@ Don'tPanic Правда, непонятно, для чего именно OP идет здесь. Мое решение просто дает запрошенный результат. Независимо от того, делает он это так, как планировал ОП, трудно сказать. –

Смежные вопросы