Присвоение значений свойству класса в PHP - PullRequest
1 голос
/ 30 апреля 2011

Один из примеров в книге PHP, на которой я учусь (иллюстрирующий частные свойства), начинается так:

class Account {
   private $_totalBalance = 0;

   public function makeDeposit($amount) {
      $this->_totalBalance+= $amount;
   }

   public function makeWithdrawal ($amount){
      if ($amount < $this->_totalBalance) {
         $this->_totalBalance -= $amount;
      }
      else {
         die("insufficient funds <br />" );
      }
   }
   public function getTotalBalance() {
      return $this->_totalBalance;
   }
}

$a = new Account;
$a->makeDeposit(500);
$a->makeWithdrawal(100);
echo $a->getTotalBalance();
$a->makeWithdrawal(1000);
?>

Мой вопрос: почему свойству $ _totalBalance присваивается значение в классе, а не в объекте? Разве вы не хотите, чтобы значение $ totalBalance было специфичным для объекта?

Спасибо за помощь.

1 Ответ

0 голосов
/ 30 апреля 2011

Когда вы вызываете $a->makeDeposit(), внутри makeDeposit () $this совпадает с $a.Если бы у вас был другой экземпляр ($b = new Account;), то вызов $b->makeDeposit() означал бы, что $this будет таким же, как $b.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...