- PHP 手册
- 函数参考
- 变量与类型相关扩展
- 类/对象
- 类/对象 函数
trait_exists
(PHP 5 >= 5.4.0, PHP 7, PHP 8)
trait_exists — 检查指定的 trait 是否存在
说明
trait_exists(string$trait
, bool $autoload
= true
): bool
参数
-
trait
-
待检查的 trait 的名称
-
autoload
-
如果尚未加载,是否使用自动加载(autoload)。
返回值
如果 trait 存在返回 true
,否则返回 false
。
User Contributed Notes 3 notes
up down 13 Lubaev.K ¶9 years ago
<?php
trait World {
private static $instance;
protected $tmp;
public static function World()
{
self::$instance = new static();
self::$instance->tmp = get_called_class().' '.__TRAIT__;
return self::$instance;
}
}
if ( trait_exists( 'World' ) ) {
class Hello {
use World;
public function text( $str )
{
return $this->tmp.$str;
}
}
}
echo Hello::World()->text('!!!'); // Hello World!!!
up
down
4
astinus dot eberhard at gmail dot com ¶5 years ago
Traits are compatible with class autoload mechanism - in fact, if you look at source code of trait_exists function, you will find similar peace of code (see Zend/zend_builtin_functions.c)
up
down
3
valerio dot bozzolan at gmail dot com ¶6 years ago
What is the default value of $autoload? And in which way traits are autoloaded? Is there something as spl_autoload() for traits?
add a note
官方地址:https://www.php.net/manual/en/function.trait-exists.php