Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Скриптовые языки программирования > PHP
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 06.12.2015, 19:59   #1
NataHamster
Пользователь
 
Регистрация: 27.06.2013
Сообщений: 22
Печаль Не хочет присваивать имя для переменной в классе-наследнике

Друзья, помогите пож.

Код:
class SuperUser extends User{
public $role;
function __construct($n, $l, $p, $r){
$this->name = $n;
$this->login = $l;
$this->password = $p;
$this->role = $r;
}
function showInfo(){
echo "<p>Name: ".$this->name."<br>";
echo "Login: ".$this->login."<br>";
echo "Password: ".$this->password."<br>";
echo "Role: ".$this->role."<br>";
}
}

$user = new SuperUser("Super Admin", "root", "pass@word1", "admin");
$user->showInfo();
Почему-то не присваивает admin для $r
Warning: Missing argument 4 for SuperUser::__construct() Заранее спасибо.

Последний раз редактировалось Аватар; 06.12.2015 в 20:04.
NataHamster вне форума Ответить с цитированием
Старый 06.12.2015, 20:15   #2
CodeNOT
Форумчанин
 
Аватар для CodeNOT
 
Регистрация: 08.11.2010
Сообщений: 593
По умолчанию

В дочернем классе родительский конструктор не вызвали
метод __construct() перепилить так примерно
Код:
public function __construct($n, $l, $p, $r){
parent::__construct();
$this->name = $n;
$this->login = $l;
$this->password = $p;
$this->role = $r;
}
CodeNOT вне форума Ответить с цитированием
Старый 06.12.2015, 20:23   #3
NataHamster
Пользователь
 
Регистрация: 27.06.2013
Сообщений: 22
По умолчанию

Спасибо Вам большое, теперь присвоил, вот только обругался на каждую из трех переменных, заданных в родит классе
Warning: Missing argument 1 for User::__construct(), called in C:\OpenServer\domains\sp3.loc\users .php on line 40 and defined in C:\OpenServer\domains\sp3.loc\users .php on line 7

line 40 - вот эта новоиспеченная строка parent::__construct();
line 7 - function __construct($n, $l, $p){ //конструктор в родит. классе
NataHamster вне форума Ответить с цитированием
Старый 06.12.2015, 20:32   #4
come-on
Участник клуба
 
Регистрация: 21.10.2015
Сообщений: 1,361
По умолчанию

ТАк читайте что пишут.
come-on вне форума Ответить с цитированием
Старый 07.12.2015, 12:01   #5
CodeNOT
Форумчанин
 
Аватар для CodeNOT
 
Регистрация: 08.11.2010
Сообщений: 593
По умолчанию

ну тогда строчку
Код:
parent::__construct();
меняем на
Код:
parent::__construct($n, $l, $p);
CodeNOT вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Необходимо присваивать значение переменной на 20 сек CHEburaschka Общие вопросы Delphi 2 03.06.2015 10:50
не хочет присваивать(оператор":=") tolikprankster Паскаль, Turbo Pascal, PascalABC.NET 4 01.03.2013 02:59
Изменение переменной в классе и др. Dark_zarich Общие вопросы по Java, Java SE, Kotlin 3 28.01.2012 00:17
Имя переменной Alex Cones Общие вопросы Delphi 9 09.07.2010 21:04
Имя переменной как переменная. Как получить доступ к такой переменной? Denni Microsoft Office Access 8 02.04.2009 10:06