浅谈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 相关文章推荐
在PHP3中实现SESSION的功能(二)
Oct 09 PHP
php转换颜色为其反色的方法
Apr 27 PHP
php中smarty模板条件判断用法实例
Jun 11 PHP
学习php设计模式 php实现访问者模式(Visitor)
Dec 07 PHP
php实现简单爬虫的开发
Mar 28 PHP
PHP错误和异常处理功能模块示例
Nov 12 PHP
PHP会话控制实例分析
Dec 24 PHP
PHP实现登陆表单提交CSRF及验证码
Jan 24 PHP
PHP微信开发之微信录音临时转永久存储
Jan 26 PHP
PHP运用foreach神奇的转换数组(实例讲解)
Feb 01 PHP
laravel 操作数据库常用函数的返回值方法
Oct 11 PHP
PHP 计算两个时间段之间交集的天数示例
Oct 24 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
使用Discuz关键词服务器实现PHP中文分词
2014/03/11 PHP
PHP基本语法实例总结
2016/09/09 PHP
PHP自定义多进制的方法
2016/11/03 PHP
Yii框架使用魔术方法实现跨文件调用功能示例
2017/05/20 PHP
基于PHP的加载类操作以及其他两种魔术方法的应用实例
2017/08/28 PHP
基于jsTree的无限级树JSON数据的转换代码
2010/07/27 Javascript
jquery中获取元素的几种方式小结
2011/07/05 Javascript
javascript随机将第一个dom中的图片添加到第二个div中示例
2013/10/08 Javascript
javascript对象的使用和属性操作示例详解
2014/03/02 Javascript
在JS中操作时间之getUTCMilliseconds()方法的使用
2015/06/10 Javascript
很全面的JavaScript常用功能汇总集合
2016/01/22 Javascript
基于JavaScript如何制作遮罩层对话框
2016/01/26 Javascript
在JavaScript中模拟类(class)及类的继承关系
2016/05/20 Javascript
关于Node.js的events.EventEmitter用法介绍
2017/04/01 Javascript
Vuex简单入门
2017/04/19 Javascript
Angular中使用$watch监听object属性值的变化(详解)
2017/04/24 Javascript
Vue声明式渲染详解
2017/05/17 Javascript
详解vuex的简单使用
2018/03/12 Javascript
用p5.js制作烟花特效的示例代码
2018/03/21 Javascript
原生javascript AJAX 三级联动的实现代码
2018/05/04 Javascript
详解如何使用node.js的开发框架express创建一个web应用
2018/12/20 Javascript
详解Nuxt.js 实战集锦
2019/11/19 Javascript
利用TensorFlow训练简单的二分类神经网络模型的方法
2018/03/05 Python
NumPy.npy与pandas DataFrame的实例讲解
2018/07/09 Python
python学习开发mock接口
2019/04/28 Python
利用Python绘制Jazz网络图的例子
2019/11/21 Python
Python3.7.0 Shell添加清屏快捷键的实现示例
2020/03/23 Python
python如何支持并发方法详解
2020/07/25 Python
Python如何执行系统命令
2020/09/23 Python
咖啡为什么会有酸味?你喝到的咖啡為什麼是酸的?
2021/03/17 冲泡冲煮
给交警的表扬信
2014/01/12 职场文书
港澳通行证委托书怎么写
2014/08/02 职场文书
天坛导游词
2015/02/02 职场文书
Python中threading库实现线程锁与释放锁
2021/05/17 Python
解析Java异步之call future
2021/06/14 Java/Android
基于MySql验证的vsftpd虚拟用户
2021/11/07 MySQL