浅谈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动态图像的创建
Oct 09 PHP
ThinkPHP 防止表单重复提交的方法
Aug 08 PHP
php输出xml格式字符串(用的这个)
Jul 12 PHP
PHP下获取上个月、下个月、本月的日期(strtotime,date)
Feb 02 PHP
easyui的tabs update正确用法分享
Mar 21 PHP
php 过滤英文标点符号及过滤中文标点符号代码
Jun 12 PHP
PHP错误Warning:mysql_query()解决方法
Oct 24 PHP
php检查页面是否被百度收录
Oct 28 PHP
PHP文件上传之多文件上传的实现思路
Jan 27 PHP
php实现将数据做成json的格式给前端使用
Aug 21 PHP
PHP中单例模式的使用场景与使用方法讲解
Mar 18 PHP
PHP常量DIRECTORY_SEPARATOR原理及用法解析
Nov 10 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
thinkphp实现like模糊查询实例
2014/10/29 PHP
DOM基础及php读取xml内容操作的方法
2015/01/23 PHP
PHP+shell脚本操作Memcached和Apache Status的实例分享
2016/03/11 PHP
Laravel最佳分割路由文件(routes.php)的方式
2016/08/04 PHP
Javascript的IE和Firefox兼容性汇编
2006/07/01 Javascript
javascript iframe内的函数调用实现方法
2009/07/19 Javascript
基于JQuery实现的类似购物商城的购物车
2011/12/06 Javascript
js日期范围初始化得到前一个月日期的方法
2015/05/05 Javascript
JavaScript如何实现在文本框(密码框)输入提示语
2015/12/25 Javascript
jQuery ajax时间差导致的变量赋值问题分析
2016/01/22 Javascript
Angularjs结合Bootstrap制作的一个TODO List
2016/08/18 Javascript
js修改onclick动作的四种方法(推荐)
2016/08/18 Javascript
详解Vue.js组件可复用性的混合(mixin)方式和自定义指令
2017/09/06 Javascript
vue 中基于html5 drag drap的拖放效果案例分析
2018/11/01 Javascript
小程序实现搜索框功能
2020/03/26 Javascript
node.js中npm包管理工具用法分析
2020/02/14 Javascript
JavaScript 俄罗斯方块游戏实现方法与代码解释
2020/04/08 Javascript
比较详细Python正则表达式操作指南(re使用)
2008/09/06 Python
Python赋值语句后逗号的作用分析
2015/06/08 Python
python实现unicode转中文及转换默认编码的方法
2017/04/29 Python
Python通过matplotlib画双层饼图及环形图简单示例
2017/12/15 Python
Python3中exp()函数用法分析
2019/02/19 Python
python使用phoenixdb操作hbase的方法示例
2019/02/28 Python
python绘制地震散点图
2019/06/18 Python
python 模拟创建seafile 目录操作示例
2019/09/26 Python
Python日志logging模块功能与用法详解
2020/04/09 Python
html标签之Object和EMBED标签详解
2013/07/04 HTML / CSS
HTML 5.1来了 9月份正式发布 更新内容预览
2016/04/26 HTML / CSS
护理自荐信
2013/10/22 职场文书
服务口号大全
2014/06/11 职场文书
收款授权委托书
2014/10/02 职场文书
2014年班组工作总结
2014/11/20 职场文书
2015年安全工作总结范文
2015/04/02 职场文书
SQL Server表分区删除详情
2021/10/16 SQL Server
SQL Server Agent 服务无法启动
2022/04/20 SQL Server
Windows和Linux上部署Golang并运行程序
2022/04/22 Servers