浅谈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 相关文章推荐
php读取javascript设置的cookies的代码
Apr 12 PHP
PHP URL地址获取函数代码(端口等) 推荐
May 15 PHP
php删除与复制文件夹及其文件夹下所有文件的实现代码
Jan 23 PHP
深入for,while,foreach遍历时间比较的详解
Jun 08 PHP
destoon首页调用求购供应信息的地区名称的方法
Aug 21 PHP
PHP防止注入攻击实例分析
Nov 03 PHP
PHP中的traits实现代码复用使用实例
May 13 PHP
8个必备的PHP功能开发
Oct 02 PHP
变量在 PHP7 内部的实现(二)
Dec 21 PHP
thinkPHP中分页用法实例分析
Dec 26 PHP
PDO::prepare讲解
Jan 29 PHP
laravel excel 上传文件保存到本地服务器功能
Nov 14 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
一个tab标签切换效果代码
2009/03/27 Javascript
jquery dialog键盘事件代码
2010/08/01 Javascript
自动设置iframe大小的jQuery代码
2013/09/11 Javascript
js几秒以后倒计时跳转示例
2013/12/26 Javascript
微信企业号开发之微信考勤百度地图定位
2015/09/11 Javascript
学习JavaScript设计模式(策略模式)
2015/11/26 Javascript
JavaScript实现图片滑动切换的代码示例分享
2016/03/06 Javascript
Javascript中的 “&amp;” 和 “|” 详解
2017/02/02 Javascript
JS简单判断滚动条的滚动方向实现方法
2017/04/28 Javascript
vue.js整合vux中的上拉加载下拉刷新实例教程
2018/01/09 Javascript
AngularJS使用ui-route实现多层嵌套路由的示例
2018/01/10 Javascript
如何更好的编写js async函数
2018/05/13 Javascript
详解html-webpack-plugin插件(用法总结)
2018/09/12 Javascript
如何去除富文本中的html标签及vue、react、微信小程序中的过滤器
2018/11/21 Javascript
JS数组方法reverse()用法实例分析
2020/01/18 Javascript
[57:22]完美世界DOTA2联赛PWL S2 FTD vs PXG 第二场 11.27
2020/12/01 DOTA
python自定义类并使用的方法
2015/05/07 Python
Python实现针对中文排序的方法
2017/05/09 Python
Django验证码的生成与使用示例
2017/05/20 Python
Python实现App自动签到领取积分功能
2018/09/29 Python
numpy向空的二维数组中添加元素的方法
2018/11/01 Python
Python第三方库h5py_读取mat文件并显示值的方法
2019/02/08 Python
django框架使用orm实现批量更新数据的方法
2019/06/21 Python
python障碍式期权定价公式
2019/07/19 Python
PyTorch中的Variable变量详解
2020/01/07 Python
python有序查找算法 二分法实例解析
2020/02/18 Python
蔻驰意大利官网:COACH意大利
2019/01/16 全球购物
同步和异步有何异同,在什么情况下分别使用他们
2013/04/09 面试题
致短跑运动员广播稿
2014/01/09 职场文书
银行开业庆典方案
2014/02/06 职场文书
大学军训感言1500字
2014/03/09 职场文书
竞选班干部演讲稿300字
2014/08/20 职场文书
七一活动主持词
2015/06/29 职场文书
公司保洁员管理制度
2015/08/04 职场文书
Python 线程池模块之多线程操作代码
2021/05/20 Python
SQL实现LeetCode(178.分数排行)
2021/08/04 MySQL