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 相关文章推荐
PHP5.2下chunk_split()函数整数溢出漏洞 分析
Jun 06 PHP
php 文件上传代码(限制jpg文件)
Jan 05 PHP
php array_unique之后json_encode需要注意
Jan 02 PHP
基于php split()函数的用法详解
Jun 05 PHP
php empty()与isset()区别的详细介绍
Jun 17 PHP
解析php file_exists无效的解决办法
Jun 26 PHP
解决PHP4.0 和 PHP5.0类构造函数的兼容问题
Aug 01 PHP
php类的扩展和继承用法实例
Jun 20 PHP
php实现的递归提成方案实例
Nov 14 PHP
PHP后台微信支付和支付宝支付开发
Apr 28 PHP
PHP网页安全认证的实例详解
Sep 28 PHP
laravel解决迁移文件一次删除创建字段报错的问题
Oct 24 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 木马攻击防御技巧
2009/06/13 PHP
php access 数据连接与读取保存编辑数据的实现代码
2010/05/12 PHP
php性能优化分析工具XDebug 大型网站调试工具
2011/05/22 PHP
关于PHP自动判断字符集并转码的详解
2013/06/26 PHP
PHP抽象类基本用法示例
2018/12/28 PHP
SOSO地图API使用(一)在地图上画圆实现思路与代码
2013/01/15 Javascript
jquery弹出框的用法示例(2)
2013/08/26 Javascript
详解Vue2中组件间通信的解决全方案
2017/07/28 Javascript
JavaScript数据结构之双向链表定义与使用方法示例
2017/10/27 Javascript
浅谈Node.js CVE-2017-14849 漏洞分析(详细步骤)
2017/11/10 Javascript
tracking.js页面人脸识别插件使用方法
2020/04/16 Javascript
koa2实现登录注册功能的示例代码
2018/12/03 Javascript
微信小程序与后台PHP交互的方法实例分析
2018/12/10 Javascript
微信小程序实现搜索功能
2020/03/10 Javascript
简单介绍Python的Tornado框架中的协程异步实现原理
2015/04/23 Python
Python字符串处理实例详解
2017/05/18 Python
利用python实现周期财务统计可视化
2019/08/25 Python
详解基于python的多张不同宽高图片拼接成大图
2019/09/26 Python
python中必要的名词解释
2019/11/20 Python
使用pandas 将DataFrame转化成dict
2019/12/10 Python
在pytorch中对非叶节点的变量计算梯度实例
2020/01/10 Python
双向RNN:bidirectional_dynamic_rnn()函数的使用详解
2020/01/20 Python
python学习将数据写入文件并保存方法
2020/06/07 Python
selenium切换标签页解决get超时问题的完整代码
2020/08/30 Python
解决PyCharm IDE环境下,执行unittest不生成测试报告的问题
2020/09/03 Python
Django权限控制的使用
2021/01/07 Python
html5录音功能实战示例
2019/03/25 HTML / CSS
html5用video标签流式加载的实现
2020/05/20 HTML / CSS
澳洲女装时尚在线:Blue Bungalow
2018/05/05 全球购物
泰国网上购物:Shopee泰国
2018/09/14 全球购物
高性能装备提升营地:Kammok
2019/02/27 全球购物
运动会开幕式邀请函
2014/02/03 职场文书
纠纷协议书
2014/04/16 职场文书
故宫的导游词
2015/01/31 职场文书
2015年教师党员个人总结
2015/11/24 职场文书
25张裸眼3D图片,带你重温童年的记忆,感受3D的魅力
2022/02/06 杂记