嗨,我是PHP新手,所以请原谅这个问题的基本性质。
我有一个类:"CustomerInfo.php",我包括在另一个类。然后我试图用定义的setter方法设置CustomerInfo对象的变量,我试图用getter方法回显该变量。问题是getter不能工作。但是如果我直接访问这个变量,我可以回显它的值。我困惑…
<?php
class CustomerInfo
{
public $cust_AptNum;
public function _construct()
{
echo"Creating new CustomerInfo instance<br/>";
$this->cust_AptNum = "";
}
public function setAptNum($apt_num)
{
$this->cust_AptNum = $apt_num;
}
public function getAptNum()
{
return $this->cust_AptNum;
}
}
?>
<?php
include ('CustomerInfo.php');
$CustomerInfoObj = new CustomerInfo();
$CustomerInfoObj->setAptNum("22");
//The line below doesn't output anything
echo "CustomerAptNo = $CustomerInfoObj->getAptNum()<br/>";
//This line outputs the value that was set
echo "CustomerAptNo = $CustomerInfoObj->cust_AptNum<br/>";
?>
Try
echo 'CustomerAptNo = ' . $CustomerInfoObj->getAptNum() . '<br/>';
或者您需要将方法调用用"复杂(花括号)语法"
echo "CustomerAptNo = {$CustomerInfoObj->getAptNum()} <br/>";
作为你调用的方法,而不是用双引号括起来的变量
对于字符串和变量,你可以使用sprintf方法来提高你的应用程序的性能
而不是:
echo "CustomerAptNo = $CustomerInfoObj->getAptNum()<br/>";
这样做:
echo sprintf("CustomerAptNo = %s <br />", $CustomerInfoObj->getAptNum());
查看http://php.net/sprintf了解更多信息