Как наследовать более одного класса в PHP?


Существует возможность наследовать от двух классов в PHP?

у Меня есть класс, который уже наследует от класса Usuarios и хотел бы, чтобы она herdasse класс Crud.

class Alunos extends Usuarios {
}
Author: Maniero, 2017-09-13

4 answers

Предпочитайте композицию наследованию.

Вам не нужно наследовать. Просто создавать экземпляры классов внутри него и использовать.

В PHP нет поддержки нескольких наследства.

 4
Author: Costamilam, 2017-09-14 13:22:24

Не может, почти язык-то позволяет, и даже те, которые позволят хлопотно.

Существует возможность использования interfaces (см. также), который определяет договоры и совершает рода множественного наследования, делаете подтип, но не класса, то есть повторного использования кода, или то traits что делает повторное использование кода в ограниченной степени. Это не то же, что унаследовать класс, но и помогает.

В любом случае почти все проблемы что человек думает, что нужно наследовать более одного класса, нарушает правила наследования, и там было бы хорошим человеком пересмотреть все ваше понимание о наследовании, скорее всего, этот человек , использует наследование, где не должно, - даже в простых случаях.

Я нахожу странным ,Aluno быть,Usuario, может быть, но не часто. Aluno, конечно, не Crud. Там не я думаю, что это даже одиночного наследования. На самом деле, ни состав этих двух вещей, будет соответствовать.

, то, что я всегда повторяю, что почти весь код ООП не правы, в целом имеет больше путаницы понятий, чем решение проблем. Скажу больше, если люди начнут использовать ООП уверен начинают сдаваться.

 8
Author: Maniero, 2017-09-14 00:10:45

И вы могли бы создать интерфейс для инкапсуляции кода и намерении реализовать через класс Crud, что класс Пользователей extenderia, и, наконец, учеников класса унаследует их атрибуты и методы, вы можете создать экземпляр без проблем.

interface Conexao { metodos();}

class Crud implements Conexao{herdaria metodo(){}} 

class Usuarios extends Crud{herdaria metodo(){}} 

class Alunos extends Usuarios{herdaria os metodos de ambas}

$aluno1 = new Alunos();

Так будет проще.

 1
Author: Fabio Abbadi, 2020-12-28 19:31:44

В PHP существует функция под названием Traits. Это метод программирования (общей для других языков тоже), чтобы добавить дополнительные функции к классу.

Если цель в том, что несколько классов, используя методы CRUD, может быть хорошим выходом.

Link документации, официальный

Статья Imasters

 0
Author: Fabio De Souza Mendes, 2017-09-14 13:18:33