2.11.2016 / 07:59 | |
Alexandr Пользователь Сейчас: Offline
Имя: Александр Откуда: Днепр Регистрация: 01.07.2012
| я хочу, в ООП. вобще не помню, как там работать с классами/объектами.
Изменено Alexandr (2.11 / 08:10) (всего 1 раз) |
2.11.2016 / 08:12 | |
vladgba Модератор форума Сейчас: Offline
Имя: Влад Откуда: Украина Регистрация: 27.03.2015
| Alexandr, class test{
public static function funk(){
echo 'testing';
}
}
test::funk();
или class test{
private $f='hello';
public function funk(){
echo $f;
}
}
$test=new test();
$test->funk();
Изменено vladgba (2.11 / 08:16) (всего 2 раза) |
2.11.2016 / 08:58 | |
Alexandr Пользователь Сейчас: Offline
Имя: Александр Откуда: Днепр Регистрация: 01.07.2012
| vladgba, ужас а как там с наследованием? |
2.11.2016 / 09:30 | |
Helltar Пользователь Сейчас: Offline
Регистрация: 29.11.2011
| |
2.11.2016 / 13:29 | |
Koenig Модератор форума Сейчас: Offline
Имя: Дмитрий Откуда: Калининград(Koenigsberg) Регистрация: 23.01.2011
| Цитата vladgba: Alexandr, class test{ public static function funk(){ echo 'testing'; } } test::funk();
или class test{ private $f='hello'; public function
не будет вторгой вариант работать, так как надо $this->f написать __________________
Магистр Мёда |
2.11.2016 / 13:49 | |
Jahak Пользователь Сейчас: Offline
Имя: Константин Регистрация: 16.01.2012
| Alexandr, Наследование Наследование <?php
trait StudentTrait
{
public function getStudentProfile()
{
return sprintf(
'<b>Name:</b> %s, <b>Age:</b> %s, <b>Direction:</b> %s',
$this->getName(), $this->getAge(), $this->getDirection()
);
}
}
class Human
{
protected $name;
protected $age;
public function __construct($name, $age)
{
$this->name = $name;
$this->age = $age;
}
public function getName()
{
return $this->name;
}
public function getAge()
{
return $this->age;
}
}
class Student extends Human
{
use StudentTrait;
private $direction;
public function __construct($name, $age, $direction)
{
parent::__construct($name, $age);
$this->direction = $direction;
}
public function getDirection()
{
return $this->direction;
}
}
$student = new Student('Jahak', 21, 'PHP, MySQL');
echo $student->getStudentProfile();
|
2.11.2016 / 14:08 | |
aNNiMON Супервизор Сейчас: Offline
Имя: Витёк Регистрация: 11.01.2010
| Jahak, это типобезопасно использовать в трейте вызовы методов? Откуда мы знаем, что getName(), getAge(), getDirection() есть в $this?
__________________
let live |
2.11.2016 / 14:27 | |
Jahak Пользователь Сейчас: Offline
Имя: Константин Регистрация: 16.01.2012
| aNNiMON, нет конечно, это не типобезопасно, просто хотел показать, как трейты помогают решить некоторые ограничения единого наследования в PHP
|
2.11.2016 / 14:46 | |
Jahak Пользователь Сейчас: Offline
Имя: Константин Регистрация: 16.01.2012
| Хотя эту проблему можно решить с помощью интерфейса ну или проверок на существование этих методов в $this |
2.11.2016 / 16:08 | |
litta Пользователь Сейчас: Offline
Имя: Виктория Регистрация: 26.10.2016
| Alexandr, ты хочешь
|