浅谈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
PHP set_time_limit(0)长连接的实现分析
Mar 02 PHP
is_uploaded_file函数引发的不能上传文件问题
Oct 29 PHP
php遍历文件夹下的所有文件和子文件夹示例
Mar 20 PHP
php无限极分类递归排序实现方法
Nov 11 PHP
PHP实现的比较完善的购物车类
Dec 02 PHP
ThinkPHP开发框架函数详解:C方法
Aug 14 PHP
windows下apache搭建php开发环境
Aug 27 PHP
phpmailer绑定邮箱的实现方法
Dec 01 PHP
PHP中error_reporting函数用法详细介绍
Jun 11 PHP
Laravel实现短信注册的示例代码
May 29 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
先进的自动咖啡技术,真的可以取代咖啡师吗?
2021/03/06 冲泡冲煮
用php的ob_start来生成静态页面的方法分析
2011/03/09 PHP
在IIS下安装PHP扩展的方法(超简单)
2017/04/10 PHP
jquery刷新页面的实现代码(局部及全页面刷新)
2011/07/11 Javascript
VBS通过WMI监视注册表变动的代码
2011/10/27 Javascript
js判断浏览器类型为ie6时不执行
2014/06/15 Javascript
jQuery实现切换字体大小的方法
2015/03/10 Javascript
jQuery增加与删除table列的方法
2016/03/01 Javascript
一系列Bootstrap导航条使用方法分享
2016/04/29 Javascript
jQuery实现布局高宽自适应的简单实例
2016/05/28 Javascript
node.js连接MongoDB数据库的2种方法教程
2017/05/17 Javascript
jQuery实现浏览器之间跳转并传递参数功能【支持中文字符】
2018/03/28 jQuery
JavaScript中变量提升与函数提升经典实例分析
2018/07/26 Javascript
Vue自定义弹窗指令的实现代码
2018/08/13 Javascript
Vue开发之watch监听数组、对象、变量操作分析
2019/04/25 Javascript
小程序如何获取多个formId实现详解
2019/09/20 Javascript
jQuery-App输入框实现实时搜索
2020/11/19 jQuery
python检测服务器是否正常
2014/02/16 Python
Python基于高斯消元法计算线性方程组示例
2018/01/17 Python
Python基于plotly模块实现的画图操作示例
2019/01/23 Python
Python发展简史 Python来历
2019/05/14 Python
pip指定python位置安装软件包的方法
2019/07/12 Python
如何使用selenium和requests组合实现登录页面
2020/02/03 Python
python+OpenCV实现图像拼接
2020/03/05 Python
关于python 的legend图例,参数使用说明
2020/04/17 Python
pandas创建DataFrame的7种方法小结
2020/06/14 Python
python excel多行合并的方法
2020/12/09 Python
HTML5在a标签内放置块级元素示例代码
2013/08/23 HTML / CSS
Jimmy Choo美国官网:周仰杰鞋子品牌
2018/06/08 全球购物
Molton Brown美国官网:奢华美容、香水、沐浴和身体护理
2020/09/02 全球购物
网络维护中文求职信
2014/01/03 职场文书
幼儿园百日安全活动总结
2015/05/07 职场文书
jQuery ajax - getScript() 方法和getJSON方法
2021/05/14 jQuery
国产动画《万圣街》日语配音版制作决定!
2022/03/20 国漫
动画电影《龙珠超 超级英雄》延期上映
2022/03/20 日漫
Python中tqdm的使用和例子
2022/09/23 Python