PHP getter方法问题


PHP getter method question

嗨,我是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了解更多信息