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 相关文章推荐
第六节 访问属性和方法 [6]
Oct 09 PHP
用Flash图形化数据(二)
Oct 09 PHP
phpMyAdmin 安装配置方法和问题解决
Jun 08 PHP
基于PHP Web开发MVC框架的Smarty使用说明
Apr 19 PHP
PHP exif扩展方法开启详解
Jul 28 PHP
php延迟静态绑定实例分析
Feb 08 PHP
浅析Yii2 GridView 日期格式化并实现日期可搜索教程
Apr 22 PHP
微信 开发生成带参数的二维码的实例
Nov 23 PHP
PHP实现基于面向对象的mysqli扩展库增删改查操作工具类
Jul 18 PHP
PHP基于自定义函数实现的汉字转拼音功能实例
Sep 30 PHP
php 处理png图片白色背景色改为透明色的实例代码
Dec 10 PHP
PHP xpath()函数讲解
Feb 11 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
推荐一篇入门级的Class文章
2007/03/19 PHP
PHP 调试工具Debug Tools
2011/04/30 PHP
php使用mb_check_encoding检查字符串在指定的编码里是否有效
2013/11/07 PHP
PHP实现微信网页授权开发教程
2016/01/19 PHP
Yii2.0中使用js异步删除示例
2017/03/10 PHP
js 浮动层菜单收藏
2009/01/16 Javascript
javascript 构建一个xmlhttp对象池合理创建和使用xmlhttp对象
2010/01/15 Javascript
Jquery index()方法 获取相应元素索引值
2012/10/12 Javascript
轻松实现javascript数据双向绑定
2015/11/11 Javascript
javascript bom是什么及bom和dom的区别
2015/11/26 Javascript
浅析jQuery Mobile的初始化事件
2015/12/03 Javascript
JavaScript严格模式详解
2017/01/16 Javascript
JS字符串长度判断,超出进行自动截取的实例(支持中文)
2017/03/06 Javascript
JavaScript之Map和Set_动力节点Java学院整理
2017/06/29 Javascript
Vue-CLI3.x 设置反向代理的方法
2018/12/06 Javascript
PHPStorm中如何对nodejs项目进行单元测试详解
2019/02/28 NodeJs
深入学习TypeScript 、React、 Redux和Ant-Design的最佳实践
2019/06/17 Javascript
Python二叉搜索树与双向链表转换实现方法
2016/04/29 Python
Python如何抓取天猫商品详细信息及交易记录
2018/02/23 Python
Python实现查询某个目录下修改时间最新的文件示例
2018/08/29 Python
django-rest-swagger对API接口注释的方法
2019/08/29 Python
NumPy排序的实现
2020/01/21 Python
Django Serializer HiddenField隐藏字段实例
2020/03/31 Python
Python selenium文件上传下载功能代码实例
2020/04/13 Python
SportsDirect.com马来西亚:英国第一体育零售商
2018/11/21 全球购物
Emma Bridgewater官网:英国餐具制造商
2019/11/24 全球购物
初中学校军训方案
2014/05/09 职场文书
节约用水标语
2014/06/11 职场文书
副总经理岗位职责范本
2014/09/30 职场文书
教师批评与自我批评发言稿
2014/10/15 职场文书
入党积极分子个人总结
2015/03/02 职场文书
2015年大学生工作总结
2015/04/21 职场文书
乡镇法制宣传日活动总结
2015/05/05 职场文书
大学生入党自传2015
2015/06/26 职场文书
什么是SOLID
2022/03/24 Javascript
Python 视频画质增强
2022/04/28 Python