Вопрос о методе получения PHP

Привет, я новичок в PHP, поэтому простите основной характер этого вопроса.

У меня есть класс: «CustomerInfo.php», который я включаю в другой класс. Затем я пытаюсь установить переменную объекта CustomerInfo с помощью определенного метода установки, и я пытаюсь повторить эту переменную, используя метод получения. Проблема в том, что геттер не работает. Но если я напрямую обращаюсь к переменной, я могу повторить значение. Я смущен....

    <?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/>";
?>

person banditKing    schedule 20.07.2011    source источник


Ответы (2)


Пытаться

echo 'CustomerAptNo = ' . $CustomerInfoObj->getAptNum() . '<br/>';

Или вам нужно будет поместить вызов метода в «Сложный (кудрявый) синтаксис»

echo "CustomerAptNo = {$CustomerInfoObj->getAptNum()} <br/>";

Поскольку вы вызываете метод, а не переменную в двойных кавычках.

person JLP    schedule 20.07.2011
comment
Следует учитывать, что для строк всегда следует использовать одинарные кавычки. Заставляет PHP работать быстрее, и таких проблем никогда не бывает. - person Emil; 20.07.2011

для строки concat и переменных вы можете использовать метод sprintf для лучшей производительности вашего приложения.

вместо этого:

echo "CustomerAptNo = $CustomerInfoObj->getAptNum()<br/>";

сделай это:

echo sprintf("CustomerAptNo = %s <br />", $CustomerInfoObj->getAptNum()); 

проверьте http://php.net/sprintf для более подробной информации.

person The Mask    schedule 20.07.2011