PHP Conference Japan 2024

trait_exists

(PHP 5 >= 5.4.0, PHP 7, PHP 8)

trait_exists检查 trait 是否存在

描述

trait_exists(字符串 $trait, 布尔值 $autoload = true): 布尔值

参数

trait

要检查的 trait 的名称

autoload

如果尚未加载,是否要进行 自动加载

返回值

如果 trait 存在,则返回 true,否则返回 false

添加注释

用户贡献的注释 3 个注释

Lubaev.K
11 年前
<?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!!!
astinus dot eberhard at gmail dot com
7 年前
Traits 与类自动加载机制兼容 - 事实上,如果您查看 trait_exists 函数的源代码,您会发现类似的代码段(参见 Zend/zend_builtin_functions.c)
valerio dot bozzolan at gmail dot com
8 年前
$autoload 的默认值是什么?trait 以何种方式自动加载?trait 有类似 spl_autoload() 的机制吗?
To Top