Калимаи калидии trait

Калимаи калидии trait барои эҷоди трейтҳо - механизми такрори истифодаи рамз дар PHP истифода мешавад. Трейтҳо ба синфҳо монанд ҳастанд, вале барои гурӯҳбандӣ намудани функсионалӣ дар воҳидҳои хурд ва фаҳмо тарҳрезӣ шудаанд. Онҳоро бо истифода аз калимаи калидии use ба синфҳо пайваст кардан мумкин аст.

Синтаксис

phptrait TraitName {
  // хусусиятҳо ва усулҳои трейт
  public function method1() {
    // амалӣ кардан
  }
}

Намуна

Биёед як трейти сода эҷод намуда, онро ба синф пайваст кунем:

php<?php
  trait Logger {
    public function log($message) {
      echo "Логгинг: " . $message;
    }
  }

  class User {
    use Logger;
  }

  $user = new User();
  $user->log("Корбар эҷод шуд");
?>

Натиҷаи иҷрои рамз:

php'Логгинг: Корбар эҷод шуд'

Намуна

Як синф метавонад якбора чанд трейтро истифода барад:

php<?php
  trait Timestamp {
    public function getCurrentTime() {
      return date('Y-m-d H:i:s');
    }
  }

  trait Serializer {
    public function toJson($data) {
      return json_encode($data);
    }
  }

  class Product {
    use Timestamp, Serializer;
  }

  $product = new Product();
  echo $product->getCurrentTime();
?>

Натиҷаи иҷрои рамз:

php'2023-11-15 14:30:00'

Ҳамчунин бубинед

  • фармони class,
    ки барои эъломияи синфҳо истифода мешавад
  • фармони interface,
    ки барои эъломияи интерфейсҳо истифода мешавад