Рубрики
Uncategorized

PHP использует trail для решения проблемы наследования одного PHP

Автор оригинала: David Wong.

В этой статье приведен пример PHP, использующего признак для решения проблемы одиночного наследования PHP. Подробности заключаются в следующем:

Что такое наследование?

Наследование на самом деле является своего рода отношением между двумя классами в объектно-ориентированном программировании. Это важное средство объектно-ориентированного программирования. Благодаря наследованию структура программы может быть более эффективно организована, отношения между классами могут быть уточнены, а существующие классы могут быть полностью использованы для завершения более сложной и углубленной разработки.

Когда класс содержит все данные и операции другого класса, говорят, что между этими двумя классами существует связь наследования.

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

В PHP расширение используется для обозначения отношения наследования между подклассом и родительским классом.

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

  • Единое наследование означает, что любой класс имеет только один родительский класс, и его структура может быть представлена простой древовидной структурой;
  • Множественное наследование означает, что класс может иметь более одного родительского класса, а его свойства статических данных и операции наследуются от всех этих родительских классов. Его структура должна быть представлена сложной сетевой структурой.

PHP поддерживает только одно наследование, в то время как множественное наследование реализуется через интерфейс или признак.

Пример одного наследования PHP:

//Singleton inheritance: a subclass can only have one parent
class A{
  function show() {
    echo "A";
  }
}

class B{
  function show() {
    echo "B";
  }
}

class C extends A{

}

$c = new C;
$c->show();

Использование признака для решения одноэлементного наследования PHP

Начиная с PHP 5.4.0, PHP реализовал метод повторного использования кода, называемый trait.

  • Trail-это механизм повторного использования кода для отдельных языков наследования, таких как PHP
  • Чтобы уменьшить ограничения одного языка наследования, он позволяет разработчикам свободно использовать методы в независимых классах в разных иерархиях
  • Семантика сочетания признака и класса определяет способ уменьшить сложность и избежать типичных проблем традиционного множественного наследования и смешанного класса
  • Не может быть создан через саму черту

Пример:

php
  trait Reader{
   public function add($var1,$var2){
     return $var1+$var2;
   }
  }
  trait writer {
   public function multiplication($var1,$var2){
     return $var1*$var2;
   }
  }
  class File {
   use Reader;
   use writer;
   public function calculate($var1,$var2){
     echo "Ressult of addition:".$this->add($var1,$var2) ."\n";
     echo "Ressult of multiplication:".$this->multiplication($var1,$var2);
   }
  }
  $o = new File();
  $o->calculate(5,3);

Несколько трасс

Разделенные запятыми, в объявлении об использовании перечислены несколько маршрутов, которые могут быть вставлены в класс.

sayHello();
$o->sayWorld();
$o->sayExclamationMark();

Разрешение конфликтов

Если оба пути вставляют метод с одинаковым именем, произойдет фатальная ошибка, если конфликт не будет разрешен явно.

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

Допускается исключение только других методов, поскольку оператор может ввести псевдоним для метода. будьте осторожны, как Оператор не переименовывает метод и не влияет на его метод.

Пример:

От черты к черте

Точно так же, как класс может использовать признак, другие признаки также могут использовать признак. При определении признака некоторые или все элементы других признаков могут быть объединены с помощью одного или нескольких признаков.

sayHello();
$o->sayWorld();

Абстрактные члены признака

Чтобы обеспечить принудительное использование классов, trait поддерживает использование абстрактных методов.

getWorld();
  }
  abstract public function getWorld();
}

class MyHelloWorld {
  private $world;
  use Hello;
  public function getWorld() {
    return $this->world;
  }
  public function setWorld($val) {
    $this->world = $val;
  }
}

Статические члены тропы

Черты могут быть определены статическими элементами и статическими методами.

inc(); // echo 1
$p = new C2(); $p->inc(); // echo 1
x;

справочные ресурсы:

справочные ресурсы:

справочные ресурсы:

https://www..com/what-is-traits-in-php

Подробнее о содержании, связанном с PHP, заинтересованные читатели могут ознакомиться со специальными разделами этого веб-сайта: “Вводный учебник по объектно-ориентированному программированию PHP”, “Энциклопедия навыков работы с массивами PHP”, “Вводный учебник по базовой грамматике PHP”, “Краткое описание операций PHP и использования операторов”, “Краткое описание использования строк PHP”, “Вводный учебник по работе с базой данных PHP + MySQL” и “Общая работа с базой данных PHP”. Краткое изложение навыков письма

Я надеюсь, что эта статья будет полезна для программирования на PHP.