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 杂谈《重构-改善既有代码的设计》之五 简化函数调用
May 07 PHP
深入了解 register_globals (附register_globals=off 网站打不开的解决方法)
Jun 27 PHP
php的ajax简单实例
Feb 27 PHP
PHP资源管理框架Assetic简介
Jun 12 PHP
如何让CI框架支持service层
Oct 29 PHP
PHPExcel笔记, mpdf导出
May 03 PHP
PHP 返回13位时间戳的实现代码
May 13 PHP
php版微信公众平台接口参数调试实现判断用户行为的方法
Sep 23 PHP
PHP+MySQL使用mysql_num_rows实现模糊查询图书信息功能
May 31 PHP
php+lottery.js实现九宫格抽奖功能
Jul 21 PHP
thinkphp框架实现路由重定义简化url访问地址的方法分析
Apr 04 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小偷相关截取函数备忘
2010/11/28 PHP
php备份数据库类分享
2015/04/14 PHP
PHP7新增函数
2021/03/09 PHP
基于jquery的获取mouse坐标插件的实现代码
2010/04/01 Javascript
基于jQuery的Tab选项框效果代码(插件)
2011/03/01 Javascript
jquery中的$(document).ready()使用小结
2014/02/14 Javascript
JavaScript中iframe实现局部刷新的几种方法汇总
2016/01/06 Javascript
jquery+css3实现会动的小圆圈效果
2016/01/27 Javascript
使用jquery.qrcode.min.js实现中文转化二维码
2016/03/11 Javascript
jQuery获取父元素及父节点的方法小结
2016/04/14 Javascript
JS获取元素多层嵌套思路详解
2016/05/16 Javascript
jQuery实现页面点击后退弹出提示框的方法
2016/08/24 Javascript
微信小程序 教程之条件渲染
2016/10/18 Javascript
ionic进入多级目录后隐藏底部导航栏(tabs)的完美解决方案
2016/11/23 Javascript
javascript循环链表之约瑟夫环的实现方法
2017/01/16 Javascript
从零学习node.js之模块规范(一)
2017/02/21 Javascript
vue element upload实现图片本地预览
2019/08/20 Javascript
javascript设计模式 ? 代理模式原理与用法实例分析
2020/04/16 Javascript
微信小程序自定义底部弹出框功能
2020/11/18 Javascript
python 字符串格式化代码
2013/03/17 Python
Python找出9个连续的空闲端口
2016/02/01 Python
Python获取linux主机ip的简单实现方法
2016/04/18 Python
深入浅析python定时杀进程
2016/06/06 Python
python pandas中DataFrame类型数据操作函数的方法
2018/04/08 Python
Python采集代理ip并判断是否可用和定时更新的方法
2018/05/07 Python
python networkx 包绘制复杂网络关系图的实现
2019/07/10 Python
python 串口读取+存储+输出处理实例
2019/12/26 Python
分享29个基于Bootstrap的HTML5响应式网页设计模板
2015/11/19 HTML / CSS
JAVA和C++区别都有哪些
2015/03/30 面试题
敏捷开发的主要原则都有哪些
2015/04/26 面试题
2014年秋季开学典礼致辞
2014/08/02 职场文书
群众路线个人对照检查材料2014
2014/09/26 职场文书
计划生育汇报材料
2014/12/26 职场文书
自荐信怎么写
2015/03/04 职场文书
4S店销售内勤岗位职责
2015/04/13 职场文书
领导离职感言
2015/08/03 职场文书