The eval() function evaluates strings according to PHP code.
The string must be valid PHP code and must end with a semicolon.
If no return statement is called in the code string, NULL is returned. If there are parsing errors in the code, the eval() function returns false.
eval (phpcode)
|
参数 | 描述 |
---|---|
phpcode | 必需。规定要计算的 PHP 代码。 |
Note: The return statement immediately terminates the calculation of the string.
Comments: This function is useful for storing code in a database text field for later calculations.
<?php
$string = "beautiful" ;
$time = "winter" ;
$str = 'This is a $string $time morning!' ;
echo $str . "<br />" ;
eval ( "$str = "$str";" );
echo $str ;
?>
|
输出:
This is a $string $time morning! This is a beautiful winter morning!<br />eval() 函数在CodeIgniter框架里也有用到。在 /system/database/DB.php 文件中,根据系统的配置动态的定义了一个类 CI_DB,具体代码片段如下:
if ( ! isset( $active_record ) OR $active_record == TRUE)
{
require_once (BASEPATH. 'database/DB_active_rec.php' );
if ( ! class_exists ( 'CI_DB' ))
{
eval ( 'class CI_DB extends CI_DB_active_record { }' );
}
}
else
{
if ( ! class_exists ( 'CI_DB' ))
{
eval ( 'class CI_DB extends CI_DB_driver { }' );
}
}
require_once (BASEPATH. 'database/drivers/' . $params [ 'dbdriver' ]. '/' . $params [ 'dbdriver' ]. '_driver.php' );
// Instantiate the DB adapter
$driver = 'CI_DB_' . $params [ 'dbdriver' ]. '_driver' ;
$DB = new $driver ( $params );
|