php eval函数用法总结


Posted in PHP onOctober 31, 2012

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

本函式可将字符串之中的变量值代入,通常用在处理数据库的数据上。参数 code_str 为欲处理的字符串。值得注意的是待处理的字符串要符合 PHP 的字符串格式,同时在结尾处要有分号。使用本函式处理后的字符串会沿续到 PHP 程序结束。

PHP 相关文章推荐
实现树状结构的两种方法
Oct 09 PHP
PHP入门学习的几个不错的实例代码
Jul 13 PHP
md5 16位二进制与32位字符串相互转换示例
Dec 30 PHP
浅谈php自定义错误日志
Feb 13 PHP
PHP使用DirectoryIterator显示下拉文件列表的方法
Mar 13 PHP
浅谈php提交form表单
Jul 01 PHP
php基于dom实现读取图书xml格式数据的方法
Feb 03 PHP
PHP中TP5 上传文件的实例详解
Jul 31 PHP
Ubuntu彻底删除PHP7.0的方法
Jul 27 PHP
thinkphp3.2同时连接两个数据库的简单方法
Aug 13 PHP
Thinkphp集成抖音SDK的实现方法
Apr 28 PHP
PHP sdk文档处理常用代码示例解析
Dec 09 PHP
PHP5下$_SERVER变量不再受magic_quotes_gpc保护的弥补方法
Oct 31 #PHP
php图片加中文水印实现代码分享
Oct 31 #PHP
php中防止恶意刷新页面的代码小结
Oct 31 #PHP
利用PHP生成静态HTML文档的原理
Oct 29 #PHP
PHP学习笔记 IIS7下安装配置php环境
Oct 29 #PHP
PHP去掉从word直接粘贴过来的没有用格式的函数
Oct 29 #PHP
php daddslashes()和 saddslashes()有哪些区别分析
Oct 26 #PHP
You might like
php 面向对象的一个例子
2011/04/12 PHP
php+mysqli使用面向对象方式查询数据库实例
2015/01/29 PHP
JSON PHP中,Json字符串反序列化成对象/数组的方法
2018/05/31 PHP
ExtJS 简介 让你知道extjs是什么
2008/12/29 Javascript
心扬JS分页函数代码
2010/09/10 Javascript
$(&quot;&quot;).click与onclick的区别示例介绍
2014/09/25 Javascript
Google Maps API地图应用示例分享
2014/10/23 Javascript
浅析javascript中函数声明和函数表达式的区别
2015/02/15 Javascript
EasyUI实现第二层弹出框的方法
2015/03/01 Javascript
JS递归遍历对象获得Value值方法技巧
2016/06/14 Javascript
浅谈jquery中使用canvas的问题
2016/10/10 Javascript
Vue.js第一天学习笔记(数据的双向绑定、常用指令)
2016/12/01 Javascript
vue.js实现点击后动态添加class及删除同级class的实现代码
2018/04/04 Javascript
用Javascript实现发送短信验证码间隔功能
2021/02/08 Javascript
[00:12]2018DOTA2亚洲邀请赛SOLO赛 MidOne是否中单第一人?
2018/04/05 DOTA
详解python时间模块中的datetime模块
2016/01/13 Python
详解python使用Nginx和uWSGI来运行Python应用
2018/01/09 Python
Python实现针对给定单链表删除指定节点的方法
2018/04/12 Python
实例分析python3实现并发访问水平切分表
2018/09/29 Python
python读取文本中的坐标方法
2018/10/14 Python
Python批量删除只保留最近几天table的代码实例
2019/04/01 Python
Python2和Python3的共存和切换使用
2019/04/12 Python
使用GitHub和Python实现持续部署的方法
2019/05/09 Python
对python特殊函数 __call__()的使用详解
2019/07/02 Python
Python面向对象程序设计之继承、多态原理与用法详解
2020/03/23 Python
台湾乐天市场:日本No.1的网路购物网站
2017/03/22 全球购物
世界上最大的艺术和工艺用品商店:MisterArt.com
2018/07/13 全球购物
写出二分查找算法的两种实现
2013/05/13 面试题
如何进行有效的自我评价
2013/09/27 职场文书
六十大寿答谢词
2014/01/12 职场文书
同学聚会欢迎辞
2014/01/14 职场文书
国税会议欢迎词
2014/01/16 职场文书
《去年的树》教学反思
2014/04/11 职场文书
保护环境倡议书100字
2014/05/19 职场文书
敬老院院长事迹材料
2014/05/21 职场文书
关于战胜挫折的名言警句大全!
2019/07/05 职场文书