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 相关文章推荐
PHP调用MySQL的存储过程的实现代码
Aug 12 PHP
程序员编程十条戒律
Jul 09 PHP
PHP学习之数组值的操作
Apr 17 PHP
JSON在PHP中的应用介绍
Sep 08 PHP
php自动加载机制的深入分析
Jun 08 PHP
PHP里8个鲜为人知的安全函数分析
Dec 09 PHP
php短址转换实现方法
Feb 25 PHP
php编程实现简单的网页版计算器功能示例
Apr 26 PHP
PHP实现普通hash分布式算法简单示例
Aug 06 PHP
PHP常见的几种攻击方式实例小结
Apr 29 PHP
PHP中类与对象功能、用法实例解读
Mar 27 PHP
2020最新版 PhpStudy V8.1版本下载安装使用详解
Oct 30 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执行sql语句的写法
2009/03/10 PHP
php array_multisort 对数组进行排序详解及实例代码
2016/10/27 PHP
php中的钩子理解及应用实例分析
2019/08/30 PHP
js类中获取外部函数名的方法与代码
2007/09/12 Javascript
javascript闭包入门示例
2014/04/30 Javascript
JS控制输入框内字符串长度
2014/05/21 Javascript
用js的document.write输出的广告无阻塞加载的方法
2014/06/05 Javascript
jQuery实现点击小图显示大图代码分享
2015/08/25 Javascript
基于jQuery实现弹出可关闭遮罩提示框实例代码
2016/07/18 Javascript
iOS和Android用同一个二维码实现跳转下载链接的方法
2016/09/28 Javascript
Bootstrap基本组件学习笔记之导航(10)
2016/12/07 Javascript
angularjs使用directive实现分页组件的示例
2017/02/07 Javascript
用javascript获取任意颜色的更亮或更暗颜色值示例代码
2017/07/21 Javascript
Javascript实现跨域后台设置拦截的方法详解
2017/08/04 Javascript
JS弹窗 JS弹出DIV并使整个页面背景变暗功能的实现代码
2018/04/21 Javascript
vue-i18n结合Element-ui的配置方法
2019/05/20 Javascript
jQuery pager.js 插件动态分页功能实例分析
2019/08/02 jQuery
原生js实现ajax请求和JSONP跨域请求操作示例
2020/03/14 Javascript
原生JS实现微信通讯录
2020/06/18 Javascript
[00:36]DOTA2上海特级锦标赛 Alliance战队宣传片
2016/03/04 DOTA
[42:32]VP vs RNG 2019国际邀请赛淘汰赛 败者组 BO3 第一场 8.21.mp4
2020/07/19 DOTA
Python实现基本线性数据结构
2016/08/22 Python
在Python中增加和插入元素的示例
2018/11/01 Python
解决Python内层for循环如何break出外层的循环的问题
2019/06/24 Python
python 并发编程 阻塞IO模型原理解析
2019/08/20 Python
python网络爬虫 CrawlSpider使用详解
2019/09/27 Python
pandas 像SQL一样使用WHERE IN查询条件说明
2020/06/05 Python
保加利亚运动鞋购物网站:SneakerStudio.bg
2020/12/23 全球购物
商务助理岗位职责
2013/11/13 职场文书
经济职业学院毕业生自荐书
2014/03/17 职场文书
教师考核评语
2014/04/28 职场文书
团支部推优材料
2014/05/21 职场文书
班组长安全工作职责
2014/07/15 职场文书
项目战略合作意向书
2015/05/08 职场文书
2016个人先进事迹材料范文
2016/03/01 职场文书
​(迎国庆)作文之我爱我的祖国
2019/09/19 职场文书