Вопрос о методе получения PHP - PullRequest
1 голос
/ 20 июля 2011

Привет, я новичок в 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/>";
?>

Ответы [ 2 ]

5 голосов
/ 20 июля 2011

Попробуйте

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

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

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

Как вы вызываете метод, а не переменную с двойными кавычками.

1 голос
/ 20 июля 2011

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

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

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

сделать это:

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

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

...