関数 trait_exists

関数 trait_exists は、現在のスコープ内に指定されたトレイトが存在するかどうかをチェックします。第一引数として文字列でトレイト名を受け取り、第二引数(オプション)としてクラスのオートロードを使用するかどうかを示すフラグを受け取ります。

構文

phptrait_exists(string $traitname, bool $autoload = true): bool

例

トレイトの存在を確認します:

php<?php
  trait MyTrait {
    public function sayHello() {
      echo 'Hello';
    }
  }
  
  $res = trait_exists('MyTrait');
  var_dump($res);
?>

コード実行結果:

phptrue

例

オートロードを無効にして、存在しないトレイトを確認します:

php<?php
  $res = trait_exists('NonExistentTrait', false);
  var_dump($res);
?>

コード実行結果:

phpfalse

例

条件演算子での関数の使用:

php<?php
  if (trait_exists('Loggable')) {
    echo 'Trait exists';
  } else {
    echo 'Trait does not exist';
  }
?>

コード実行結果(トレイトが宣言されていない場合):

php'Trait does not exist'

関連項目

  • クラスを確認する関数 class_exists,
    クラスをチェックします
  • インターフェースを確認する関数 interface_exists,
    インターフェースをチェックします
  • トレイトを返す関数 get_declared_traits,
    宣言されたトレイトを返します
  • クラスのトレイトを返す関数 class_uses,
    クラスが使用するトレイトを返します