PHP implements a way to reuse code called Traits. The trait_exists() function in PHP is an inbuilt function that is used to check whether a trait exists or not. This function accepts the traitname and autoload as parameters and returns true if trait exists, false if not, null in case of an error.
Syntax :
trait_exists ( string $traitname , bool $autoload = ? ) : bool
Parameters: This function accepts two parameters as mentioned above and described below.
- $traitname: This parameter contains the name of the trait.
- $autoload: This parameter is a boolean value that tells whether to autoload, if not already loaded.
Return Value:
- It returns true, if a trait exists.
- It returns false, if the trait does not exist.
- It returns null for any error encountered.
Example 1:
PHP
<?php // Created trait Programming trait Programming
{ // Declared static instance
private static $instance ;
protected $temp ;
// Defining static function in trait to Reuse
public static function Designing()
{
self:: $instance = new static ();
// Magic constant __TRAIT__ in PHP
// It gets the class name for the static method called.
self:: $instance ->temp = get_called_class(). ' ' .__TRAIT__;
return self:: $instance ;
}
} // Checking if 'Programming' Trait exists if ( trait_exists( 'Programming' ) )
{ class Initializing
{
// Reusing trait 'Programming'
use Programming;
public function text( $strParam )
{
return $this ->temp. $strParam ;
}
}
} echo Initializing::Designing()->text( '!!!' );
?> |
Output:
Initializing Programming!!!
Example 2:
PHP
<?php // Creating Base class class Base
{ public function callBase()
{
echo 'This is base function!' . "<br>" ;
}
} // Creating Trait trait myTrait {
public function callBase()
{
parent::callBase();
echo 'This is trait function!' . "<br>" ;
}
} // Using myTrait class myClass extends Base
{ use myTrait;
} $myObject = new myClass();
$myObject ->callBase();
// Checking if trait exists if (trait_exists( "myTrait" ))
{ echo "\n myTrait exists! \n" ;
} else { echo "\n myTrait does not exists! \n" ;
} ?> |
Output:
This is base function! This is trait function! myTrait exists!
Reference : https://www.php.net/manual/en/function.trait-exists.php