定義和用法
eval() 函數把字串按照 PHP 程式碼來計算。
字串必須是合法的 PHP 程式碼,且必須以分號結尾。
如果沒有在程式碼字串中呼叫 return 語句,則傳回 NULL。如果程式碼中存在解析錯誤,則 eval() 函數傳回 false。
文法
?
eval (phpcode)
|
参数 | 描述 |
---|---|
phpcode | 必需。规定要计算的 PHP 代码。 |
提示與註解
註解:回傳語句會立即終止字串的計算。
註解:此函數對於在資料庫文字欄位中供日後計算而進行的程式碼儲存很有用。範例
?
|
<?php
$time = "winter" ;
$str = 'This is a $string $time morning!' ; <br>eval() 函数在CodeIgniter框架里也有用到。在 /system/database/DB.php 文件中,根据系统的配置动态的定义了一个类 CI_DB,具体代码片段如下:
?>
|
輸出:
This is a $string $time morning!This is a beautiful winter morning!?
if ( ! isset( $active_record ) OR $ active_record == TRUE) { <code>require_once (BASEPATH. 'database/DB_active_rec.php' ); if ( ! class_exists ( 'CI_DB' )) { >( 'class CI_DB extends CI_DB_active_record { }' ); } } > } else { if ( ! class_exists if ( ! class_exists code><code>( 'CI_DB' )) { eval ( <code>'class CI_DB extends CI_DB_driver { }'<code>'class CI_DB extends CI_DB_driver { }' );<code> } } } ><code> 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 );
|