PHP OOP构造爆炸不清楚

蒂莫西·库切(Timothy Coetzee)

这不是关于特定问题的问题,而是关于寻求建议和/或帮助的问题。

我是二年级学生,我真的很想掌握OOP编程的知识,我的课本不是很清楚,其解释也无济于事。我知道网上大概有100多个例子,但我想特别关注教科书中使用的例子。

php中OOP的介绍始于此:示例1

class Person{
var $name;
function set_name($data){
    $this->name=$data;
  }

function get_name(){
    return $this->name;
  } 
}
$ralph = new Person;
$ralph->set_name('Ralph');
echo 'friend name is '.$ralph->get_name();

很好,我没问题,但是接着继续给出,我认为对构造函数的解释很简短,说:

如果您可以同时创建和初始化一个对象,那不是很好,PHP允许您使用构造函数来实现。

然后继续给出以下示例示例2(UNCLEAR ...?)

class Person{
var $name;

function __construct($data)
{ 
  $this->name=$data
}

function set_name($data){
    $this->name=$data;
}

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

}

$dan = new Person;
echo"Friend name is ", $dan->get_name(), ".";

我的问题

我真的很想知道上面两个例子之间的区别是什么?同样,如果可以包括一个初学者的实际例子,将不胜感激!

罗伯·M

难怪您会感到困惑,这是一个非常糟糕的示例(看起来他们忘记了将名称传递给构造函数)!也有一些过时的款式在这里为好,一般人不使用var了财产申报,但申报的范围(publicprivateprotected等),也有一些语法错误(缺少分号),但这是另一天。

更清楚的是,如果他们实际上使用了构造函数的新功能,出于某种原因,他们没有使用。这是一个实际使用构造函数的更新示例:

class Person{
  private $name;

  function __construct($data)
  { 
    $this->name=$data;
  }

  function set_name($data){
      $this->name=$data;
  }

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

}

// pass the name to the constructor and you can bypass the set_name call
$dan = new Person("Timothy");

echo "Friend name is ", $dan->get_name(), ".";

这肯定比传递标量有用得多,但是希望它可以说明构造函数可以做些什么。每当您从类中实例化新对象时,都会自动调用构造函数。如果您有任何问题,请告诉我。

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章