2011-07-20 6 views
1

Salut Im nouveau à PHP alors pardonner la nature de base de cette question.PHP getter méthode question

J'ai une classe: "CustomerInfo.php" que j'inclus dans une autre classe. Ensuite, j'essaie de définir une variable d'objet CustomerInfo avec la méthode setter définie et Im essayant de répercuter cette variable à l'aide de la méthode getter. Le problème est que le getter ne fonctionne pas. Mais si j'accède directement à la variable, je peux faire écho à la valeur. Im confus ....

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

Répondre

5

Essayez

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

Ou vous devez placer l'appel de méthode avec une "syntaxe complexe (Curly)"

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

En appelant une méthode, pas une variable entre guillemets.

+0

Merci pour votre réponse. Cela a fonctionné :) – banditKing

+0

Une chose à considérer est de toujours utiliser des guillemets simples pour vos chaînes. Rend PHP plus rapide et il n'y a jamais de problèmes comme celui-ci. – Emil

1

pour chaîne de concat et variables, vous pouvez utiliser la méthode de sprintf pour une meilleure perfomace vous application que

au lieu de ceci:

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

faire:

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

check http://php.net/sprintf pour plus détails

+0

Merci pour votre réponse. – banditKing