PHP eval() 函數


定義和用法

eval() 函數把字符串按照 PHP 代碼來計算。

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

如果沒有在代碼字符串中調用 return 語句,則返回 NULL。如果代碼中存在解析錯誤,則 eval() 函數返回 false。

語法

eval(phpcode)

  

參數 描述
phpcode 必需。規定要計算的 PHP 代碼。

 

提示和注釋

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

注釋:該函數對於在數據庫文本字段中供日后計算而進行的代碼存儲很有用。

例子

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

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

  


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM