Как установить глобальную переменную в этом классе? Я пробовал это:
class myClass { $test = "The Test Worked!"; function example() { echo $test; } function example2() { echo $test." again"; } }
Который не смог загрузить страницу, полностью ссылаясь на ошибку 500. Затем я попробовал следующее:
class myClass { public $test = "The Test Worked!"; function example() { echo $test; } function example2() { echo $test." again"; } }
Но когда я напечатал оба эти, все, что я вижу, снова «Извините за такой простой вопрос!
Благодаря!
к этой переменной можно обращаться так:
echo $this->test;
Если вам нужна переменная экземпляра (сохраняется только для этого экземпляра класса), используйте:
$this->test
(как предложил другой ответ).
Если вы хотите переменную «class», прикрепите ее ключевым словом «static» следующим образом:
Переменная класса отличается от переменной экземпляра тем, что все экземпляры объектов, созданные из класса, будут иметь одну и ту же переменную.
(Примечание для доступа к переменным класса, используйте Имя класса или «Я», за которым следует «::»)
class myClass { public static $test = "The Test Worked!"; function example() { echo self::$test; } function example2() { echo self::$test." again"; } }
Наконец, если вы хотите истинную константу (неизменяемую), используйте «const» впереди (снова получите доступ к ней «self» плюс «::» плюс имя константы (хотя на этот раз пропустите «$»):
class myClass { const test = "The Test Worked!"; function example() { echo self::test; } function example2() { echo self::test." again"; } }
class Foo { public $bar = 'bar'; function baz() { $bar; // refers to local variable inside function, currently undefined $this->bar; // refers to property $bar of $this object, // ie the value 'bar' } } $foo = new Foo(); $foo->bar; // refers to property $bar of object $foo, ie the value 'bar'
Пожалуйста, начните читать здесь: http://php.net/manual/en/language.oop5.basic.php
на самом деле существует два способа доступа к переменной или функции в классе либо из класса, либо извне, если они запрашивают элемент публично (или в некоторых случаях защищаются)
class myClass { public $test = "The Test Worked!"; function example() { echo $this->test; // or with the scope resolution operator echo myClass::test; } function example2() { echo $this->test." again"; // or with the scope resolution operator echo myClass::test." again"; } }
Попробуйте добавить $this
к фронту ваших переменных; вы можете изменить второй пример на
class myClass { public $test = "The Test Worked!"; function example() { echo $this->test; } function example2(){ echo $this->test." again"; } }