class User{ public $company_name; } class Employer extends User{ public $fname; public $sname; }
это test.php, который я создал. Я включил файл класса.
$employer = new Employer(); $user = new User(); $employer->company_name = "Company name is "; echo $user->company_name;
Когда я печатаю имя, ничего не происходит, сообщите мне, что случилось с моим кодом.
Класс Employer
расширяет ваш класс User
но при создании объектов $user
и $employer
они являются отдельными объектами и не связаны друг с другом.
Подумайте о таких объектах:
$employer = new Employer(); // You now have $employer object with the following properties: // $employer->company_name; // $employer->fname; // $employer->sname; $user = new User(); // You now have $user object with the following properties: // $user->company_name; $employer->company_name = "Company name is "; // You now have $employer object with the following properties: // $employer->company_name = 'Company name is '; // $employer->fname; // $employer->sname; echo $user->company_name; // You currently have $user object with the following properties: // $user->company_name; /* no value to echo! */
Если вы хотите использовать унаследованные свойства, он работает примерно так:
class User{ public $company_name; function PrintCompanyName(){ echo 'My company name is ' . $this->company_name; } } class Employer extends User{ public $fname; public $sname; } $employer = new Employer(); $employer->company_name = 'Rasta Pasta'; $employer->PrintCompanyName(); //echoes 'My company name is Rasta Pasta.'
Не путайте переменные, $user
и $employer
, с классами. $user
– это экземпляр класса User, а $employer
– это экземпляр класса Employer, но они являются отдельными переменными.
Вы никогда не устанавливаете $user->company_name
.
echo $employer->company_name;
Вы не присвоили что-то $company_name
объекта $ user; только для работодателя.
Вам просто нужно эхо
$employer->company_name;
или установить
$user->company_name
к некоторой ценности.
Вам не нужно создавать экземпляр родительского класса для работы с дочерним классом. В этом случае работодатель $ наследует company_name из класса User.