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 判断变量类型实现代码
Oct 23 PHP
初次接触php抽象工厂模式(Elgg)
Mar 21 PHP
php in_array 函数使用说明与in_array需要注意的地方说明
Apr 13 PHP
Php获取金书网的书名的实现代码
Jun 11 PHP
PHP 循环删除无限分类子节点的实现代码
Jun 21 PHP
PHP中使用TCPDF生成PDF文档实例
Jul 01 PHP
ThinkPHP中limit()使用方法详解
Apr 19 PHP
PHP实现的限制IP投票程序IP来源分析
May 04 PHP
Thinkphp通过一个入口文件如何区分移动端和PC端
Apr 18 PHP
php表单处理操作
Nov 16 PHP
PHP注释语法规范与命名规范详解篇
Jan 21 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 Image Resize图片大小调整的函数代码
2011/01/17 PHP
PHP处理会话函数大总结
2015/08/05 PHP
Laravel执行migrate命令提示:No such file or directory的解决方法
2016/03/16 PHP
JS 自定义带默认值的函数
2011/07/21 Javascript
Javascript 鼠标移动上去小三角形滑块缓慢跟随效果
2013/04/26 Javascript
方便实用的jQuery checkbox复选框全选功能简单实例
2013/10/09 Javascript
javascript 3d 逐侦产品展示(核心精简)
2014/03/26 Javascript
js调试系列 源码定位与调试[基础篇]
2014/06/18 Javascript
javascript函数式编程实例分析
2015/04/25 Javascript
谈一谈js中的执行环境及作用域
2016/03/30 Javascript
辨析JavaScript中的Undefined类型与null类型
2016/05/26 Javascript
bootstrap-wysiwyg结合ajax实现图片上传实时刷新功能
2016/05/27 Javascript
jQuery实现的placeholder效果完整实例
2016/08/02 Javascript
Angular页面间切换及传值的4种方法
2016/11/04 Javascript
websocket+node.js实现实时聊天系统问题咨询
2017/05/17 Javascript
nodejs的路径问题的解决
2018/06/30 NodeJs
微信小程序自定义select下拉选项框组件的实现代码
2018/08/28 Javascript
JavaScript计算出两个数的差值
2020/03/19 Javascript
Vue与React的区别和优势对比
2020/12/18 Vue.js
python中关于日期时间处理的问答集锦
2013/03/08 Python
Flask入门教程实例:搭建一个静态博客
2015/03/27 Python
简单实现python数独游戏
2018/03/30 Python
Python中将dataframe转换为字典的实例
2018/04/13 Python
python调用百度地图WEB服务API获取地点对应坐标值
2019/01/16 Python
Python分析微信好友性别比例和省份城市分布比例的方法示例【基于itchat模块】
2020/05/29 Python
CSS3实现千变万化的文字阴影text-shadow效果设计
2016/04/26 HTML / CSS
英国音乐设备和乐器商店:Gear4music
2017/10/16 全球购物
俄罗斯建筑和装饰材料在线商店:Stroilandia
2020/07/25 全球购物
英国领先的在线高尔夫设备零售商:Golfgeardirect
2020/12/11 全球购物
奶茶店创业计划书范文
2014/01/17 职场文书
咖啡馆创业计划书
2014/01/26 职场文书
初中班主任评语大全
2014/04/24 职场文书
初三英语教学计划
2015/01/23 职场文书
2015年扶贫帮困工作总结
2015/05/20 职场文书
Java 将PPT幻灯片转为HTML文件的实现思路
2021/06/11 Java/Android
浅谈Redis跟MySQL的双写问题解决方案
2022/02/24 Redis