Fonksiyonlarında PHP Class argümanlar

2 Cevap php

Ben bu sınıfın işlevlerinden biri benim sınıftan bir argüman kullanırken sorun yaşıyorum.

Ben bir sınıf olarak adlandırılan şirket var:

class company {

   var $name;

   function __construct($name) {
      echo $name;
   }

   function name() {
      echo $name;
   }
}

$comp = new company('TheNameOfSomething');
$comp->name();

Ben (sondan ikinci satıra) örnekleriz zaman, yapı sihirli yöntem çalışıyor ve yankılanırken dışarı "TheNameOfSomething." I () fonksiyonu adını çağırdığınızda Ancak, ben hiçbir şey olsun.

Ben yanlış ne yapıyorum? Herhangi bir yardım büyük beğeni topluyor. Eğer başka bir bilgi gerekiyorsa, sadece sor!

Thanks
-Giles
http://gilesvangruisen.com/

2 Cevap

Sen $ this anahtar kullanarak sınıf özelliği ayarlamanız gerekir.

class company {

   var $name;

   function __construct($name) {
      echo $name;
      $this->name = $name;
   }

   function name() {
      echo $this->name;
   }
}

$comp = new company('TheNameOfSomething');
$comp->name();

Eğer ayarlamak zorunda yöntemde birinde $ adını kullanırken, $ name değişkenin kapsamı, diğer yöntemlerle ya da içeren sınıf içeri oluşturulan işlevi sınırlıdır, değişken okumak mümkün değildir hatta var biliyorum $this-> öneki kullanarak sınıf değişken.

$this->name = $name;

Bu değer kalıcı ve sınıfın tüm fonksiyonları için kullanılabilir olmasını sağlar. Ayrıca, değişken kamu, yani herhangi bir komut dosyası veya sınıf değişkenin değerini okumak ve değiştirebilir.

$comp = new company();

$comp->name = 'Something';

$comp->name(); //echos 'Something'