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 中的输出缓冲
Dec 21 PHP
PHP应用JSON技巧讲解
Feb 03 PHP
完美解决PHP中的Cannot modify header information 问题
Aug 12 PHP
PHP网页游戏学习之Xnova(ogame)源码解读(二)
Jun 23 PHP
非常好用的Zend Framework分页类
Jun 25 PHP
PHP实现Soap通讯的方法
Nov 03 PHP
dedecms集成财付通支付接口
Dec 28 PHP
smarty内部日期函数html_select_date()用法实例分析
Jul 08 PHP
ThinkPHP路由机制简介
Mar 23 PHP
Yii统计不同类型邮箱数量的方法
Oct 18 PHP
thinkPHP简单导入和使用阿里云OSSsdk的方法
Mar 15 PHP
PHP批量删除jQuery操作
Jul 23 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 smarty模版引擎中变量操作符及使用方法
2009/12/11 PHP
php读取mysql中文数据出现乱码的解决方法
2013/08/16 PHP
php发送post请求的三种方法
2014/02/11 PHP
win7 64位系统 配置php最新版开发环境(php+Apache+mysql)
2014/08/15 PHP
利用PHP如何实现Socket服务器
2015/09/23 PHP
PHP 计算两个特别大的整数实例代码
2018/05/07 PHP
TNC vs BOOM BO3 第三场2.13
2021/03/10 DOTA
IE6背景图片不缓存问题解决方案及图片使用策略多个方法小结
2012/05/14 Javascript
Windows系统下使用Sublime搭建nodejs环境
2015/04/13 NodeJs
jQuery EasyUI框架中的Datagrid数据表格组件结构详解
2016/06/09 Javascript
详解ES6中的let命令
2020/04/05 Javascript
vue.js选中动态绑定的radio的指定项
2017/06/02 Javascript
深入理解Vue父子组件生命周期执行顺序及钩子函数
2018/08/12 Javascript
Vue2.0学习系列之项目上线的方法步骤(图文)
2018/09/25 Javascript
js中事件对象和事件委托的介绍
2019/01/21 Javascript
node静态服务器实现静态读取文件或文件夹
2019/12/03 Javascript
用js限制网页只在微信浏览器中打开(或者只能手机端访问)
2020/12/24 Javascript
v-slot和slot、slot-scope之间相互替换实例
2020/09/04 Javascript
[47:02]2018DOTA2亚洲邀请赛3月29日 小组赛B组 VP VS paiN
2018/03/30 DOTA
python使用rsa加密算法模块模拟新浪微博登录
2014/01/22 Python
Python读取键盘输入的2种方法
2015/06/16 Python
从源码解析Python的Flask框架中request对象的用法
2016/06/02 Python
python 文件查找及内容匹配方法
2018/10/25 Python
Pandas之MultiIndex对象的示例详解
2019/06/25 Python
pygame实现俄罗斯方块游戏(基础篇3)
2019/10/29 Python
Python面向对象程序设计之继承、多态原理与用法详解
2020/03/23 Python
会走动的图形html5时钟示例
2014/04/27 HTML / CSS
详解HTML5 Canvas标签及基本使用
2020/01/10 HTML / CSS
维多利亚的秘密官方网站:Victoria’s Secret
2018/10/24 全球购物
澳大利亚婴儿喂养品牌:Cherub Baby
2018/11/01 全球购物
优秀的计算机专业求职信范文
2013/12/27 职场文书
矫正人员思想汇报
2014/01/08 职场文书
大学生关于奋斗的演讲稿
2014/01/09 职场文书
倡议书范文格式
2014/05/12 职场文书
医院感染管理制度
2015/08/05 职场文书
JS开发前端团队展示控制器来为成员引流
2022/08/14 Javascript