Home >Backend Development >PHP Tutorial >A brief discussion on the definition and usage of PHP eval() function

A brief discussion on the definition and usage of PHP eval() function

高洛峰
高洛峰Original
2016-12-30 10:27:341868browse

eval() 函数把字符串按照 PHP 代码来计算。

该字符串必须是合法的 PHP 代码,且必须以分号结尾。

如果没有在代码字符串中调用 return 语句,则返回 NULL。如果代码中存在解析错误,则 eval() 函数返回 false。

语法

eval(phpcode)

浅谈PHP eval()函数定义和用法

 提示和注释

注释:返回语句会立即终止对字符串的计算。

注释:该函数对于在数据库文本字段中供日后计算而进行的代码存储很有用。

例子

<?php
$string = "beautiful";
$time = "winter";
  
$str = &#39;This is a $string $time morning!&#39;;
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.&#39;database/DB_active_rec.php&#39;);
  
 if ( ! class_exists(&#39;CI_DB&#39;))
 {
  eval(&#39;class CI_DB extends CI_DB_active_record { }&#39;);
 }
 }
 else
 {
 if ( ! class_exists(&#39;CI_DB&#39;))
 {
  eval(&#39;class CI_DB extends CI_DB_driver { }&#39;);
 }
 }
  
 require_once(BASEPATH.&#39;database/drivers/&#39;.$params[&#39;dbdriver&#39;].&#39;/&#39;.$params[&#39;dbdriver&#39;].&#39;_driver.php&#39;);
  
 // Instantiate the DB adapter
 $driver = &#39;CI_DB_&#39;.$params[&#39;dbdriver&#39;].&#39;_driver&#39;;
 $DB = new $driver($params);

   

以上这篇浅谈PHP eval()函数定义和用法就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持PHP中文网。

更多浅谈PHP eval()函数定义和用法相关文章请关注PHP中文网!  


Statement:
The content of this article is voluntarily contributed by netizens, and the copyright belongs to the original author. This site does not assume corresponding legal responsibility. If you find any content suspected of plagiarism or infringement, please contact admin@php.cn