2011-07-20 4 views
1

こんにちは私はPHPに新しいので、この質問の基本的な性質を許してください。PHPゲッターメソッドの質問

私はクラス「CustomerInfo.php」を持っていますが、Imは別のクラスに含まれています。次に、定義されたsetterメソッドを使用してCustomerInfoオブジェクトの変数を設定しようとしています。また、getterメソッドを使用して変数をエコーし​​ようとしています。問題はゲッターが機能していないことです。しかし、変数に直接アクセスすると値をエコーすることができます。イムは

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

試してみてください....

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

答えて

5

を混同それとも、 "コンプレックス(カーリー)構文"

echo "CustomerAptNo = {$CustomerInfoObj->getAptNum()} <br/>"; 
にしてメソッドの呼び出しを配置する必要があります

あなたの呼び出し元のメソッドでは、二重引用符で囲まれた変数ではありません。多くのため

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

チェックhttp://php.net/sprintf

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

次の操作を行います。あなたはこれに代えて

をAPPの、連結文字列と変数のための

+0

あなたの答えをありがとう。それは働いた:) – banditKing

+0

考慮するべきことは、常にあなたの文字列のために単一引用符を使用することです。 PHPをより速くし、このような問題は決してありません。 – Emil

1

は、あなたがより良いperfomaceためのsprintfメソッドを使用することができます詳細

+0

あなたの答えをありがとう。 – banditKing