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 相关文章推荐
Linux下将excel数据导入到mssql数据库中的方法
Feb 08 PHP
PHP中实现汉字转区位码应用源码实例解析
Jun 14 PHP
关于UEditor编辑器远程图片上传失败的解决办法
Aug 31 PHP
php计算当前程序执行时间示例
Apr 24 PHP
php通过分类列表产生分类树数组的方法
Apr 20 PHP
php实现源代码加密的方法
Jul 11 PHP
总结PHP如何获取当前主机、域名、网址、路径、端口和参数等
Sep 09 PHP
ThinkPHP删除栏目(实现批量删除栏目)
Jun 21 PHP
php删除一个路径下的所有文件夹和文件的方法
Feb 07 PHP
PHP获取文件扩展名的常用方法小结【五种方式】
Apr 27 PHP
PHP的微信支付接口使用方法讲解
Mar 08 PHP
php源码的安装方法和实例
Sep 26 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生成excel时单元格内换行问题的解决方法
2010/08/26 PHP
php文件操作小结(删除指定文件/获取文件夹下的文件名/读取文件夹下图片名)
2016/05/09 PHP
Yii2使用自带的UploadedFile实现的文件上传
2016/06/20 PHP
浅谈php处理后端&amp;接口访问超时的解决方法
2016/10/29 PHP
PHP面向对象中new self()与 new static()的区别浅析
2017/08/17 PHP
PHP获取HTTP body内容的方法
2018/12/31 PHP
php web环境和命令行环境下查找php.ini的位置
2019/07/17 PHP
laravel5环境隐藏index.php后缀(apache)的方法
2019/10/12 PHP
Laravel 类和接口注入相关的代码
2019/10/15 PHP
jquery remove方法应用详解
2012/11/22 Javascript
jquerymobile局部渲染的各种刷新方法小结
2014/03/05 Javascript
一个js过滤空格的小函数
2014/10/10 Javascript
JavaScript优化专题之Loading and Execution加载和运行
2016/01/20 Javascript
微信小程序 网络API发起请求详解
2016/11/09 Javascript
jQuery基于Ajax方式提交表单功能示例
2017/02/10 Javascript
js模块加载方式浅析
2017/08/12 Javascript
vue.js获得当前元素的文字信息方法
2018/03/09 Javascript
JavaScript递归函数解“汉诺塔”算法代码解析
2018/07/05 Javascript
javascript设计模式 ? 观察者模式原理与用法实例分析
2020/04/22 Javascript
[01:32]2014DOTA2西雅图邀请赛 CIS我们有信心进入正赛
2014/07/08 DOTA
[00:06]Yes,it worked!小卡尔成功穿越时空加入战场!
2019/07/20 DOTA
Python兔子毒药问题实例分析
2015/03/05 Python
python实现根据月份和日期得到星座的方法
2015/03/27 Python
Python如何实现MySQL实例初始化详解
2017/11/06 Python
python 消费 kafka 数据教程
2019/12/21 Python
pytorch dataloader 取batch_size时候出现bug的解决方式
2020/02/20 Python
Python3读写ini配置文件的示例
2020/11/06 Python
python 动态渲染 mysql 配置文件的示例
2020/11/20 Python
英国鹦鹉店:Parrot Essentials
2018/12/03 全球购物
美国巧克力喷泉品牌:Sephra
2019/05/05 全球购物
SQL Server面试题
2013/04/04 面试题
Python面试题:如何用Python来发送邮件
2016/03/15 面试题
写好自荐信的要点
2013/11/06 职场文书
python爬虫之利用selenium模块自动登录CSDN
2021/04/22 Python
宫崎骏十大动画电影,宫崎骏好看的动画电影排名
2022/03/22 日漫
vue cli4中mockjs在dev环境和build环境的配置详情
2022/04/06 Vue.js