浅谈PHP eval()函数定义和用法


Posted in PHP onJune 21, 2016

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);

以上这篇浅谈PHP eval()函数定义和用法就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持三水点靠木。

PHP 相关文章推荐
我常用的几个类
Oct 09 PHP
粗略计算在线时间,bug:ip相同
Dec 09 PHP
PHP5中使用DOM控制XML实现代码
May 07 PHP
php方法调用模式与函数调用模式简例
Sep 20 PHP
php根据年月获取季度的方法
Mar 31 PHP
php实现中文字符截取防乱码方法汇总
Apr 29 PHP
php使用ffmpeg向视频中添加文字字幕的实现方法
May 23 PHP
PHP 中使用explode()函数切割字符串为数组的示例
May 06 PHP
php实现的二叉树遍历算法示例
Jun 15 PHP
PHP命名空间简单用法示例
Dec 28 PHP
PHP调用QQ互联接口实现QQ登录网站功能示例
Oct 24 PHP
TP5框架实现一次选择多张图片并预览的方法示例
Apr 04 PHP
PHP分页初探 一个最简单的PHP分页代码的简单实现
Jun 21 #PHP
Docker 如何布置PHP开发环境
Jun 21 #PHP
Yii2使用自带的UploadedFile实现的文件上传
Jun 20 #PHP
Yii2组件之多图上传插件FileInput的详细使用教程
Jun 20 #PHP
PHP开发制作一个简单的活动日程表Calendar
Jun 20 #PHP
php中的登陆login实例代码
Jun 20 #PHP
Laravel中使用FormRequest进行表单验证方法及问题汇总
Jun 19 #PHP
You might like
PHP 反射机制实现动态代理的代码
2008/10/22 PHP
ThinkPHP整合百度Ueditor图文教程
2014/10/21 PHP
php跨站攻击实例分析
2014/10/28 PHP
PHP保存带BOM文件的方法
2015/02/12 PHP
php简单操作mysql数据库的类
2015/04/16 PHP
PHP Laravel中的Trait使用方法
2019/01/20 PHP
javascript网页关键字高亮代码
2008/07/30 Javascript
js中判断数字\字母\中文的正则表达式 (实例)
2012/06/29 Javascript
js jquery获取随机生成id的服务器控件的三种方法
2013/07/11 Javascript
jQuery拖动div、移动div、弹出层实现原理及示例
2014/04/08 Javascript
浅析基于WEB前端页面的页面内容搜索的实现思路
2014/06/10 Javascript
JS实现仿京东淘宝竖排二级导航
2014/12/08 Javascript
jQuery使用ajax跨域获取数据的简单实例
2016/05/18 Javascript
jQuery实现获取隐藏div高度的方法示例
2017/02/09 Javascript
Vim快速合并行及vim 将文件所有行合并到一行
2017/11/27 Javascript
Angular实现的内置过滤器orderBy排序与模糊查询功能示例
2017/12/29 Javascript
微信小程序webview组件交互,内联h5页面并网页实现微信支付实现解析
2019/08/16 Javascript
JavaScript this使用方法图解
2020/02/04 Javascript
JavaScript实现简单贪吃蛇效果
2020/03/09 Javascript
vue实现购物车功能(商品分类)
2020/04/20 Javascript
JS数组的常用10种方法详解
2020/05/08 Javascript
Python计算回文数的方法
2015/03/11 Python
python判断windows系统是32位还是64位的方法
2015/05/11 Python
virtualenv实现多个版本Python共存
2017/08/21 Python
python生成每日报表数据(Excel)并邮件发送的实例
2019/02/03 Python
CSS3动画效果回调处理详解
2014/12/10 HTML / CSS
Merrell美国官网:美国登山运动鞋品牌
2018/02/07 全球购物
编程实现当输入某产品代码则打印出该产品记录的功能
2014/05/03 面试题
mysql有关权限的表都有哪几个
2015/04/22 面试题
打架检讨书300字
2014/02/02 职场文书
升旗仪式主持词
2014/03/19 职场文书
我的求职择业计划书
2014/04/04 职场文书
实习证明格式范文
2014/10/14 职场文书
党员承诺书格式范文
2015/04/28 职场文书
建国大业观后感600字
2015/06/01 职场文书
vue使用refs获取嵌套组件中的值过程
2022/03/31 Vue.js