2016-11-12 50 views
0

我想通过调用子函数中的父函数数据来学习php的简单方法。 但是我错了。导入父函数数据在孩子php oop

class name{ 
    var $firstname; 
    var $lastname; 
    var $name; 
    public function name($firstname, $lastname){ 
     $this->firstname=$firstname; 
     $this->lastname=$lastname; 
     $this->name=$this->firstname." ".$this->lastname; 
     return $this->name; 
    } 
} 
class sentence extends name{ 
    var $name; 
    var $letter; 
    function sentence(){ 
     $this->letter="My name is "; 
     echo $this->letter.$this->name; 
    } 
} 
$name=new name(ABC, Xyz); 
$letter=new sentence(); 

我创建了一个调用来获取名称输入和另一个子类来编写句子。但是不能在孩子中称呼这个名字。

+0

扔掉说: “PHP4初学者” 的书 – Federkun

+0

尝试$信纸>句();并且不需要创建名称类的对象。 @Daksh –

+1

我认为这里很难详细解释。你应该再次仔细学习OOP。 http://phpio.net/s/ru3 –

回答

0
class name 
{ 
    public $firstname; 
    public $lastname; 
    public $name; 
    public function name($firstname, $lastname) 
    { 
     $this->firstname = $firstname; 
     $this->lastname = $lastname; 
     $this->name = $this->firstname.' '.$this->lastname; 

     return $this->name; 
    } 
} 
class sentence extends name 
{ 
    public $name; 
    public $letter; 
    public function greeting() 
    { 
     $this->letter = 'My name is '; 
     echo $this->letter.$this->name; 
    } 
} 
//$name=new name(ABC, Xyz); 
$letter = new sentence('ABC', 'Xyz'); 
$letter->greeting(); 

由于@ManhNguyen

-1

你想读取父类中变量的状态吗?

这不是OOP的工作原理。

您必须将所有变量组合到一个类中,或者将它作为参数传递给您想要访问数据的函数。

其次,你似乎没有使用__construct函数,而是将变量传递给也是NO-NO的new name()函数。

0

快速修复,因为这可能是你想要的。

<?php 
class name { 

private $firstname; 
private $lastname; 
private $name; 
private $sentence; 

public function __construct($firstname, $lastname){ 
    $this->firstname = $firstname; 
    $this->lastname = $lastname; 
    $this->name = $firstname . " " . $lastname; 
    $this->sentence = "My name is : " . $this->name; 

} 

public function getName(){ 
    return $this->name; 
} 

public function getSentence(){ 
    return $this->sentence; 
} 
} 

$instance = new name("test","lastname"); 

echo $instance->getSentence(); 
?>