У меня есть follwing класс в файле «super.class.php
»Как напечатать несколько переменная, созданная внутри функции класса в PHP
<?php
class super {
public function loadme() {
$tilt = "I am tilted";
$straight = "I am Straight";
$round = "I am round";
$sleep = "I am Sleeping";
}
public function fireme() {
$hit = "I am hit";
$bullet = "I got bullet";
$gun = "Cover me! I am receiving Heavy Firing";
}
}
?>
Я хочу напечатать каждую переменную в моем другом файле. Примечание: Классы вызываются из spl_autoload_register
Когда я пытаюсь напечатать: -
<?php
$obj_super = new super();
echo $obj_super->loadme()->tilt;
echo $obj_super->fireme()->hit;
?>
я получаю сообщение об ошибке: - Trying to get property of non-object in agent.php
Обновление: Я получил это работает через этот
Надеюсь, что я не ошибаюсь ниже: -
<?php
class super {
public $title = array();
public $situation = array();
public function loadme() {
$this->title['tilt'] = "I am tilted";
$this->title['straight'] = "I am Straight";
$this->title['round'] = "I am round";
$this->title['sleep'] = "I am Sleeping";
return $this->title;
}
public function fireme() {
$this->situation['hit'] = "I am hit";
$this->situation['bullet'] = "I got bullet";
$this->situation['gun'] = "Cover me! I am receiving Heavy Firing";
return $this->situation;
}
}
?>
<?php
$obj_super = new super();
$value = $obj_super->loadme();
echo $value['tilt'];
?>
Благодаря
Все эти переменные _local_, они не привязаны к экземпляру. '$ this-> tilt = ...' и т. д. – elclanrs
Я даже пытался использовать 'public $ variable' и' global $ variable' внутри функции, он все еще не работает :( –
Если вы * действительно * хотите сделайте это так, вам нужно создать новый объект в каждом методе (например, 'stdClass') и назначить ему локальные переменные как свойства, а затем вернуть этот объект. Это очень грязно, хотя - что именно вы пытаетесь сделать? –