[英]Fatal error: Call to undefined method ShopProductWriter::getProducer()
我面臨一個問題:
致命錯誤:調用 C:\\OSPanel\\domains\\zandstra.com\\index.php 中第 37 行的未定義方法 ShopProductWriter::getProducer()
什么可能導致它?
<?php
class ShopProduct {
public $title;
public $producerSurName;
public $producerFirstName;
public $price = 0;
public function __construct (
$title,
$firstName,
$surName,
$price
)
{
$this->title = $title;
$this->producerFirstName = $firstName;
$this->producerSurName = $surName;
$this->price = $price;
}
public function getProducer () {
return $this->producerFirstName . " " . $this->producerSurName;
}
}
$product1 = new ShopProduct (
"My Antonia",
"Willa",
"Cather",
"5.99"
);
class ShopProductWriter {
public function write ($shopProduct){
$str=$shopProduct->title . ":" . $shopProduct->getProducer()
. " (".$shopProduct->price.")\n";
print $str;
}
}
$product1 = new ShopProductWriter("My Antonia", "Willa", "Cather", 5.99);
$writer = new ShopProductWriter();
$writer->write($product1);
這里
$product1 = new ShopProductWriter("My Antonia", "Willa", "Cather", 5.99);
您重新創建了$product1
,在此之前它是ShopProduct
。 ShopProductWriter
, $product1
ShopProductWriter
是一個ShopProductWriter
對象。 它沒有getProducer()
方法,它只有一個write()
方法。 這是您的代碼中的一個錯字,我認為您已經多次重寫了您的代碼,並且留下了一些您應該退出的舊初始化。 在這種形式中,可能會執行您想要的操作:
<?php
class ShopProduct {
public $title;
public $producerSurName;
public $producerFirstName;
public $price = 0;
public function __construct (
$title,
$firstName,
$surName,
$price
)
{
$this->title = $title;
$this->producerFirstName = $firstName;
$this->producerSurName = $surName;
$this->price = $price;
}
public function getProducer () {
return $this->producerFirstName . " " . $this->producerSurName;
}
}
class ShopProductWriter {
public function write ($shopProduct){
$str=$shopProduct->title . ":" . $shopProduct->getProducer()
. " (".$shopProduct->price.")\n";
print $str;
}
}
$product1 = new ShopProduct("My Antonia", "Willa", "Cather", 5.99);
$writer = new ShopProductWriter();
$writer->write($product1);
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.