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();
И вам надо сменить учебник, по которому вы это делаете. Он очень устарел и больше вреден, чем полезен.