回覆列表
  • 1 # 使用者834195712159

    eval定義和用法

    eval() 函式把字串按照 PHP 程式碼來計算。

    該字串必須是合法的 PHP 程式碼,且必須以分號結尾。

    如果沒有在程式碼字串中呼叫 return 語句,則返回 NULL。如果程式碼中存在解析錯誤,則 eval() 函式返回 false。

    語法

    eval(phpcode)

      

    引數 描述

    phpcode 必需。規定要計算的 PHP 程式碼。

    提示和註釋

    註釋:返回語句會立即終止對字串的計算。

    註釋:該函式對於在資料庫文字欄位中供日後計算而進行的程式碼儲存很有用。

    例子

    $string

    $time

    $str

    echo$str

    eval$str$str

    echo$str

    輸出:

    This is a $string $time morning!

    This is a beautiful winter morning!

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

    { // www.jbxue.com

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

    本函式可將字串之中的變數值代入,通常用在處理資料庫的資料上。引數 code_str 為欲處理的字串。值得注意的是待處理的字串要符合 PHP 的字串格式,同時在結尾處要有分號。使用本函式處理後的字串會沿續到 PHP 程式結束。

  • 中秋節和大豐收的關聯?
  • 蘋果5s主機板發熱是什麼情況?