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 相关文章推荐
echo, print, printf 和 sprintf 区别
Dec 06 PHP
PHP排序算法的复习和总结
Feb 15 PHP
Linux Apache PHP Oracle 安装配置(具体操作步骤)
Jun 17 PHP
curl不使用文件存取cookie php使用curl获取cookie示例
Jan 26 PHP
PHP 之 写时复制介绍(Copy On Write)
May 13 PHP
php中用memcached实现页面防刷新功能
Aug 19 PHP
PHP图片处理之使用imagecopyresampled函数裁剪图片例子
Nov 19 PHP
php中fgetcsv()函数用法实例
Nov 28 PHP
十个PHP高级应用技巧果断收藏
Sep 25 PHP
PHP页面输出搜索后跳转下一页的处理方法
Sep 30 PHP
php的命名空间与自动加载实现方法
Aug 25 PHP
laravel框架使用FormRequest进行表单验证,验证异常返回JSON操作示例
Feb 18 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
《星际争霸重制版》兵种对比图鉴
2020/03/02 星际争霸
codeigniter自带数据库类使用方法说明
2014/03/25 PHP
php文件缓存类汇总
2014/11/21 PHP
PHP-FPM实现性能优化
2016/03/31 PHP
PHP设置images目录不充许http访问的方法
2016/11/01 PHP
PHP获取路径和目录的方法总结【必看篇】
2017/03/04 PHP
JavaScript 学习小结(适合新手参考)
2009/07/30 Javascript
映彩衣的js随笔(js图片切换效果)
2011/07/31 Javascript
jquery div拖动效果示例代码
2013/12/08 Javascript
JavaScript获取网页支持表单字符集的方法
2015/04/02 Javascript
微信小程序 Audio API详解及实例代码
2016/09/30 Javascript
jQuery选择器实例应用
2017/01/05 Javascript
详解vuejs之v-for列表渲染
2017/06/22 Javascript
详解VUE前端按钮权限控制
2019/04/26 Javascript
jquery实现Ajax请求的几种常见方式总结
2019/05/28 jQuery
el-input 标签中密码的显示和隐藏功能的实例代码
2019/07/19 Javascript
JavaScript经典案例之简易计算器
2020/08/24 Javascript
通过实例解析JavaScript常用排序算法
2020/09/02 Javascript
Python中的defaultdict模块和namedtuple模块的简单入门指南
2015/04/01 Python
python中快速进行多个字符替换的方法小结
2016/12/15 Python
对Python中type打开文件的方式介绍
2018/04/28 Python
pandas读取CSV文件时查看修改各列的数据类型格式
2019/07/07 Python
Python使用20行代码实现微信聊天机器人
2020/06/05 Python
python 动态渲染 mysql 配置文件的示例
2020/11/20 Python
纽约海:Sea New York
2018/11/04 全球购物
ECCO俄罗斯官网:北欧丹麦鞋履及皮具品牌
2020/06/26 全球购物
大学毕业生文采飞扬的自我鉴定
2013/12/03 职场文书
二年级数学教学反思
2014/01/21 职场文书
秦兵马俑教学反思
2014/02/07 职场文书
关于运动会广播稿200字
2014/10/08 职场文书
2014年扶贫工作总结
2014/11/18 职场文书
运动会开幕词
2015/01/28 职场文书
机修车间主任岗位职责
2015/04/08 职场文书
导游词之峨眉乐山/兵马俑/北京故宫御花园
2019/09/03 职场文书
Python实现智慧校园自动评教全新版
2021/06/18 Python
Win10鼠标轨迹怎么开 Win10显示鼠标轨迹方法
2022/04/06 数码科技