关于PHP的构造函数,请问如下程序为什么数值没有赋值给构造函数中的属性?
<?phpclassbook{private$title;private$isbn;private$copies;function__construct($isbn){$...
<?php
class book
{
private $title;
private $isbn;
private $copies;
function __construct($isbn)
{
$this->setisbn($isbn);
$this->gettitle();
$this->getnumbercopies();
}
public function setisbn($isbn)
{
$this->isbn = $isbn;
}
public function gettitle()
{
$this->title = "EASY php websites with the zend framework";
print "title: {$this->title}<br/>";
}
public function getnumbercopies()
{
$this->copies = "5";
print "number copies available: {$this->copies}<br/>";
}
}
$book = new book("0615303889");
?>
IE输出:
title: EASY php websites with the zend framework
number copies available: 5
实例化的数值没有输出?
而如下程序
<?php
class employee
{
private $ein;
function __construct($ein)
{
if ($this->verifyein($ein)) {
echo "$ein verified.finish";
}
}
protected function verifyein($ein)
{
return true;
}
}
$employee = new employee("123-45-678");
?>
中为何123-45-678就会被赋值给类的 ein属性? 展开
class book
{
private $title;
private $isbn;
private $copies;
function __construct($isbn)
{
$this->setisbn($isbn);
$this->gettitle();
$this->getnumbercopies();
}
public function setisbn($isbn)
{
$this->isbn = $isbn;
}
public function gettitle()
{
$this->title = "EASY php websites with the zend framework";
print "title: {$this->title}<br/>";
}
public function getnumbercopies()
{
$this->copies = "5";
print "number copies available: {$this->copies}<br/>";
}
}
$book = new book("0615303889");
?>
IE输出:
title: EASY php websites with the zend framework
number copies available: 5
实例化的数值没有输出?
而如下程序
<?php
class employee
{
private $ein;
function __construct($ein)
{
if ($this->verifyein($ein)) {
echo "$ein verified.finish";
}
}
protected function verifyein($ein)
{
return true;
}
}
$employee = new employee("123-45-678");
?>
中为何123-45-678就会被赋值给类的 ein属性? 展开
3个回答
展开全部
1 类book构造函数里面没有输出操作.
2 类employee里$ein并没有被赋值 . 加一句var_dump($this->$ein); 结果为null.
你举得例子内的$ein自始至终都是作为方法内的局部变量而不是类属性存在 .
2 类employee里$ein并没有被赋值 . 加一句var_dump($this->$ein); 结果为null.
你举得例子内的$ein自始至终都是作为方法内的局部变量而不是类属性存在 .
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
是你自己不小心把$this->title重新赋值了:
public function gettitle()
{
$this->title = "EASY php websites with the zend framework";//本来有值被替换了
print "title: {$this->title}<br/>";//输出当然不对了
}
public function gettitle()
{
$this->title = "EASY php websites with the zend framework";//本来有值被替换了
print "title: {$this->title}<br/>";//输出当然不对了
}
本回答被网友采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
你自己没有输出的嘛。肯定没显示了~
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询