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 相关文章推荐
通过PHP CLI实现简单的数据库实时监控调度
Jul 01 PHP
在php和MySql中计算时间差的方法
Apr 22 PHP
php实现中文字符截取防乱码方法汇总
Apr 29 PHP
php正则去除网页中所有的html,js,css,注释的实现方法
Nov 03 PHP
php获取目录中所有文件名及判断文件与目录的简单方法
Mar 04 PHP
php利用fsockopen GET/POST提交表单及上传文件
May 22 PHP
用php+ajax新建流程(请假、进货、出货等)
Jun 11 PHP
php魔法函数与魔法常量使用介绍
Jul 23 PHP
php大小写转换函数(strtolower、strtoupper)用法介绍
Nov 17 PHP
实现PHP中session存储及删除变量
Oct 15 PHP
Laravel事件监听器用法实例分析
Mar 12 PHP
php实现获取近几日、月时间示例
Jul 06 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实现的百度搜索某地天气的小偷代码
2014/04/23 PHP
PHP判断一个gif图片是否为动态图片的方法
2014/11/19 PHP
织梦sitemap地图实时推送给百度的教程
2015/08/03 PHP
[原创]php求圆周率的简单实现方法
2016/05/30 PHP
thinkPHP5 tablib标签库自定义方法详解
2017/05/10 PHP
JS 判断undefined的实现代码
2009/11/26 Javascript
Jquery之美中不足小结
2011/02/16 Javascript
一个简单的全屏图片上下打开显示网页效果示例
2014/07/08 Javascript
兼容各大浏览器的JavaScript阻止事件冒泡代码
2015/07/09 Javascript
AngularJS基础 ng-init 指令简单示例
2016/08/02 Javascript
jquery无法为动态生成的元素添加点击事件的解决方法(推荐)
2016/12/26 Javascript
微信小程序 Toast自定义实例详解
2017/01/20 Javascript
鼠标经过出现气泡框的简单实例
2017/03/17 Javascript
基于vue+ bootstrap实现图片上传图片展示功能
2017/05/17 Javascript
nodejs实现大文件(在线视频)的读取
2020/10/16 NodeJs
Python MySQLdb模块连接操作mysql数据库实例
2015/04/08 Python
Python正则表达式经典入门教程
2017/05/22 Python
基于python3 OpenCV3实现静态图片人脸识别
2018/05/25 Python
tensorflow指定GPU与动态分配GPU memory设置
2020/02/03 Python
python实现学生通讯录管理系统
2021/02/25 Python
纯CSS3编写的的精美动画进度条(无flash/无图像/无脚本/附源码)
2013/01/07 HTML / CSS
CSS3动画效果回调处理详解
2014/12/10 HTML / CSS
马来西亚和新加坡巴士票在线预订:CatchThatBus
2018/11/17 全球购物
英国国家美术馆商店:National Gallery
2019/05/01 全球购物
什么是网络协议
2016/04/07 面试题
生物技术专业毕业生求职信范文
2013/12/14 职场文书
优秀高中生事迹材料
2014/02/11 职场文书
三八妇女节活动总结
2014/05/04 职场文书
经济贸易系求职信
2014/08/04 职场文书
2014年高三班主任工作总结
2014/12/05 职场文书
软件项目经理岗位职责
2015/04/01 职场文书
员工规章制度范本
2015/08/07 职场文书
《中彩那天》教学反思
2016/02/24 职场文书
处世之道:关于真诚相待的名言推荐
2019/12/02 职场文书
MySQL为id选择合适的数据类型
2021/06/07 MySQL
CPU不支持Windows11系统怎么办
2021/11/21 数码科技