@XenK

ООП PHP не работает класс?

Начал изучать ООП в PHP, написал такой класс:
<?php 

class Info {

	var $firstname;
	var $lastname;

	public function __construct($firstname, $lastname) {
		$this->$firstname = $firstname;
		$this->$lastname = $lastname;
	}

	public function GetInfo() {
		$n = $this->firstname.' '.$this->lastname;
		return $n;
	}

}

$a = new Info('Ivan', 'Pupkin');

echo $a->GetInfo();

?>


Но вывод $a->GetInfo(); не работает, в чём может быть проблема?
  • Вопрос задан
  • 947 просмотров
Решения вопроса 1
MegaMufa
@MegaMufa
1. Включите вывод всех ошибок и тогда интерпретатор сам вам будет говорить, почему не работает.

2. Вы объявляете свойства устаревшим способом. Очень-очень устаревшем (еще в 4 версии атк делали). Надо так:
public $firstname;
public $lastname;


3. В конструкторе у вас неправильно обращение к переменным. Уберите второй знак доллара:
public function __construct($firstname, $lastname) {
    $this->firstname = $firstname;
    $this->lastname = $lastname;
  }


Должно получиться вот так:
<?php
class Info {
    public $firstname;
    public $lastname;

    public function __construct($firstname, $lastname) {
        $this->firstname = $firstname;
        $this->lastname = $lastname;
    }

    public function GetInfo() {
        $n = $this->firstname.' '.$this->lastname;
        return $n;
    }
}

$a = new Info('Ivan', 'Pupkin');
echo $a->GetInfo();


И вам надо сменить учебник, по которому вы это делаете. Он очень устарел и больше вреден, чем полезен.
Ответ написан
Комментировать
Пригласить эксперта
Ответы на вопрос 1
slimus
@slimus
Symfony, Golang
Должно быть так:

$this->firstname = $firstname;
$this->lastname = $lastname;
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы