Аргументы PHP-класса в функциях

У меня возникли проблемы с использованием аргумента из моего класса в одной из функций этого класса.

У меня есть класс, называемый компанией:

class company { var $name; function __construct($name) { echo $name; } function name() { echo $name; } } $comp = new company('TheNameOfSomething'); $comp->name(); 

Когда я создаю экземпляр (вторая – последняя строка), метод построения магии отлично работает, а echo выдает «TheNameOfSomething». Однако, когда я вызываю функцию name (), я ничего не получаю.

Что я делаю не так? Любая помощь приветствуется. Если вам нужна другая информация, просто спросите!

благодаря
-Giles
http://gilesvangruisen.com/

Вам необходимо установить свойство класса с помощью этого ключевого слова $.

 class company { var $name; function __construct($name) { echo $name; $this->name = $name; } function name() { echo $this->name; } } $comp = new company('TheNameOfSomething'); $comp->name(); 

При использовании $ name в любом из методов область переменной $ name ограничена функцией, в которой она создана. Другие методы или содержащий класс не могут прочитать переменную или даже знать, что она существует, поэтому вам нужно установить переменная класса с использованием префикса $this-> .

 $this->name = $name; 

Это позволяет сохранять постоянное значение и доступно для всех функций класса. Кроме того, переменная является общедоступной, поэтому любой скрипт или класс могут читать и изменять значение переменной.

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