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 相关文章推荐
dedecms后台验证码总提示错误的解决方法
Mar 21 PHP
php 提速工具eAccelerator 配置参数详解
May 16 PHP
PHP5中新增stdClass 内部保留类
Jun 13 PHP
PHP 线程安全与非线程安全版本的区别深入解析
Aug 06 PHP
使用php伪造referer的方法 利用referer防止图片盗链
Jan 20 PHP
PHP使用imagick读取PDF生成png缩略图的两种方法
Mar 20 PHP
php的declare控制符和ticks教程(附示例)
Mar 21 PHP
PHP实现长文章分页实例代码(附源码)
Feb 03 PHP
深入浅析PHP无限极分类的案例教程
May 09 PHP
php下载文件超时时间的设置方法
Oct 06 PHP
php array_pop 删除数组最后一个元素实例
Nov 02 PHP
laravel csrf排除路由,禁止,关闭指定路由的例子
Oct 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
SONY SRF-M100的电路分析
2021/03/02 无线电
我常用的几个类
2006/10/09 PHP
php网站来路获取代码(针对搜索引擎)
2010/06/08 PHP
PHP开发中AJAX技术的简单应用
2015/12/11 PHP
详解YII关联查询
2016/01/10 PHP
雄兵连第三季海报曝光,艾妮熙德成主角,蔷薇新造型
2021/03/09 国漫
IE中radio 或checkbox的checked属性初始状态下不能选中显示问题
2009/07/25 Javascript
javascript 中String.match()与RegExp.exec()的区别说明
2013/01/10 Javascript
php实例分享之实现显示网站运行时间
2014/05/20 Javascript
javascript中2个感叹号的用法实例详解
2014/09/04 Javascript
微信小程序小组件 基于Canvas实现直播点赞气泡效果
2020/05/29 Javascript
手把手搭建安装基于windows的Vue.js运行环境
2017/06/12 Javascript
JS组件系列之Gojs组件 前端图形化插件之利器
2017/11/29 Javascript
React diff算法的实现示例
2018/04/20 Javascript
浅谈vue项目4rs vue-router上线后history模式遇到的坑
2018/09/27 Javascript
nodejs图片处理工具gm用法小结
2018/12/12 NodeJs
js Array.slice的8种不同用法示例
2019/07/10 Javascript
JavaScript判断浏览器版本的方法
2019/11/03 Javascript
vue-video-player实现实时视频播放方式(监控设备-rtmp流)
2020/08/10 Javascript
Python3实现将文件归档到zip文件及从zip文件中读取数据的方法
2015/05/22 Python
用Python解决计数原理问题的方法
2016/08/04 Python
轻松掌握python设计模式之访问者模式
2016/11/18 Python
在Django中输出matplotlib生成的图片方法
2018/05/24 Python
Python多进程池 multiprocessing Pool用法示例
2018/09/07 Python
django中使用POST方法获取POST数据
2019/08/20 Python
python类中super() 的使用解析
2019/12/19 Python
Keras 利用sklearn的ROC-AUC建立评价函数详解
2020/06/15 Python
哪些是python中web开发框架
2020/06/17 Python
python如何利用paramiko执行服务器命令
2020/11/07 Python
python中添加模块导入路径的方法
2021/02/03 Python
小学生防溺水广播稿
2014/01/12 职场文书
班组长竞聘书
2014/03/31 职场文书
服装设计师求职信
2014/06/04 职场文书
婚礼答谢词
2015/01/04 职场文书
关于CentOS 8 搭建MongoDB4.4分片集群的问题
2021/10/24 MongoDB
2022年显卡天梯图(6月更新)
2022/06/17 数码科技