Функция, которая получает 2 возможных параметра

Вся идея friend заключается в том, чтобы разоблачить ваш класс для друга.

Есть два способа, которыми вы могли бы более конкретно узнать, что вы показываете:

  1. Наследовать от FooA, таким образом, открываются только защищенные и общедоступные методы.
  2. Подружитесь только с определенным методом, таким образом, только этот метод будет иметь доступ:

.

 friend void FooB::fun();
0
задан edica 17 January 2019 в 07:41
поделиться

4 ответа

Исключительно в вопросе о разрешении методу принимать типы User и DemoUser, вы можете установить класс Interface, который может реализовывать и пользователь, и DemoUser.

Надеюсь, что это помогает.

0
ответ дан LC Yoong 17 January 2019 в 07:41
поделиться

То, что вы пытаетесь сделать, может быть достигнуто с помощью интерфейсов или абстрактных классов. Создайте интерфейс и реализуйте его в двух моделях или создайте абстрактный класс и расширьте его из вашего класса двух пользователей. Затем при передаче аргумента используйте интерфейс или абстрактный класс в качестве подсказки типа, например

public function createLogin(UserInterface $user) {

}
0
ответ дан christopher_bincom 17 January 2019 в 07:41
поделиться

Вы можете сделать что-то вроде этого,

public function createLogin($user)
{
    if (is_a($user, 'App\User')) 
    {
       // Create your user here     
    } 
    elseif(is_a($user, 'App\DemoUser'))
    {
     // create demo user here   
    }
}
0
ответ дан Md.Sukel Ali 17 January 2019 в 07:41
поделиться

Один из способов - расширить класс с методом createLogin и переписать этот метод с помощью:

public function createLogin($user)
{
    if ($user instanceOf User) {
        parent::createLogin($user)
    }
    if ($user instanceOf DemoUser) {
        // Login logic for DemoUser
    }
}

* Дайте мне знать, если у вас есть какие-либо вопросы

0
ответ дан Kabelo Tooka 17 January 2019 в 07:41
поделиться
Другие вопросы по тегам:

Похожие вопросы: