◐ Shell
clean mode source ↗

PHP: trait_exists - Manual

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

trait_existsChecks if the trait exists

Description

Parameters

trait

Name of the trait to check

autoload

Whether to autoload if not already loaded.

Return Values

Returns true if trait exists, and false otherwise.

Found A Problem?

Lubaev.K

13 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!!!

astinus dot eberhard at gmail dot com

9 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)

valerio dot bozzolan at gmail dot com

10 years ago

What is the default value of $autoload? And in which way traits are autoloaded? Is there something as spl_autoload() for traits?