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 相关文章推荐
基于mysql的bbs设计(三)
Oct 09 PHP
php 表单数据的获取代码
Mar 10 PHP
PHP 的ArrayAccess接口 像数组一样来访问你的PHP对象
Oct 12 PHP
PHP网站备份程序代码分享
Jun 10 PHP
php的SimpleXML方法读写XML接口文件实例解析
Jun 16 PHP
PHP之uniqid()函数用法
Nov 03 PHP
smarty实现多级分类的方法
Dec 05 PHP
php截取字符串函数分享
Feb 02 PHP
php使用ob_flush不能每隔一秒输出原理分析
Jun 02 PHP
php判断手机浏览还是web浏览,并执行相应的动作简单实例
Jul 28 PHP
PHP序列化操作方法分析
Sep 28 PHP
Laravel框架实现即点即改功能的方法分析
Oct 31 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
经典的星际争霸,满是回忆的BGM
2020/04/09 星际争霸
浅析PHP水印技术
2007/02/14 PHP
PHPMailer邮件类利用smtp.163.com发送邮件方法
2008/09/11 PHP
PHP设计模式 注册表模式
2012/02/05 PHP
thinkphp实现图片上传功能
2016/01/13 PHP
ThinkPHP5 验证器的具体使用
2018/05/31 PHP
基于jQuery实现图片的前进与后退功能
2013/04/24 Javascript
js判断两个日期是否相等的方法
2013/09/10 Javascript
用js一次改变多个input的readonly属性值的方法
2014/06/11 Javascript
jquery常用函数与方法汇总
2015/09/01 Javascript
基于jQuery制作小图标上下滑动特效
2017/01/18 Javascript
初探nodeJS
2017/01/24 NodeJs
详解Vue单元测试Karma+Mocha学习笔记
2018/01/31 Javascript
js中DOM事件绑定分析
2018/03/18 Javascript
vue中的watch监听数据变化及watch中各属性的详解
2018/09/11 Javascript
JavaScript类型相关的常用操作总结
2019/02/14 Javascript
Vue+Express实现登录状态权限验证的示例代码
2019/05/05 Javascript
JavaScript如何借用构造函数继承
2019/11/06 Javascript
vue点击按钮动态创建与删除组件功能
2019/12/29 Javascript
JavaScript单线程和任务队列原理解析
2020/02/04 Javascript
vue页面引入three.js实现3d动画场景操作
2020/08/10 Javascript
微信小程序wx.getUserInfo授权获取用户信息(头像、昵称)的实现
2020/08/19 Javascript
[00:44]华丽开场!DOTA2勇士令状带来全新对阵画面
2019/05/15 DOTA
Python中实现常量(Const)功能
2015/01/28 Python
python 中字典嵌套列表的方法
2018/07/03 Python
解决python3 urllib 链接中有中文的问题
2018/07/16 Python
浅谈python str.format与制表符\t关于中文对齐的细节问题
2019/01/14 Python
python redis 删除key脚本的实例
2019/02/19 Python
美国专业汽车音响和移动电子产品零售商:Car Toys
2019/05/13 全球购物
军用级手机壳,专为冒险而建:Zizo Wireless
2019/08/07 全球购物
什么是虚拟内存?虚拟内存有什么优势?
2016/02/09 面试题
汽车运用工程毕业生自荐信
2013/10/29 职场文书
解除劳动合同协议书
2014/04/14 职场文书
应届生自荐书
2014/06/23 职场文书
老公出轨后的保证书
2015/05/08 职场文书
Python装饰器的练习题
2021/11/23 Python