浅谈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 设计模式之 工厂模式
Dec 19 PHP
php class类的用法详细总结
Oct 17 PHP
ThinkPHP采用实现三级循环代码实例
Jul 18 PHP
php利用cookies实现购物车的方法
Dec 10 PHP
WordPress迁移时一些常见问题的解决方法整理
Nov 24 PHP
浅析php设计模式之数据对象映射模式
Mar 03 PHP
PHP中spl_autoload_register()函数用法实例详解
Jul 18 PHP
PHP批量获取网页中所有固定种子链接的方法
Nov 18 PHP
php curl上传、下载、https登陆实现代码
Jul 23 PHP
PHP完全二叉树定义与实现方法示例
Oct 09 PHP
Laravel框架实现定时Task Scheduling例子
Oct 22 PHP
Thinkphp 框架扩展之驱动扩展实例分析
Apr 27 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 array_map()数组函数使用说明
2011/07/12 PHP
PHP中使用php5-ffmpeg撷取视频图片实例
2015/01/07 PHP
php利用smtp类实现电子邮件发送
2015/10/30 PHP
浅谈PHP中foreach/in_array的使用
2015/11/02 PHP
PHP切割整数工具类似微信红包金额分配的思路详解
2019/09/18 PHP
php实现银联商务公众号+服务窗支付的示例代码
2019/10/12 PHP
web基于浏览器的本地存储方法应用
2012/11/27 Javascript
JavaScript Math.ceil() 函数使用介绍
2013/12/11 Javascript
js正则表达式中test,exec,match方法的区别说明
2014/01/29 Javascript
javascript实现十秒钟后注册按钮可点击的方法
2015/05/13 Javascript
通过Ajax使用FormData对象无刷新上传文件方法
2016/12/08 Javascript
Vue中计算属性computed的示例解读
2017/07/26 Javascript
深入理解JavaScript 中的执行上下文和执行栈
2018/10/23 Javascript
JavaScript oncopy事件用法实例解析
2020/05/13 Javascript
[02:05]DOTA2完美大师赛趣味视频之看我表演
2017/11/18 DOTA
教你如何将 Sublime 3 打造成 Python/Django IDE开发利器
2014/07/04 Python
Python合并多个装饰器小技巧
2015/04/28 Python
python计算牛顿迭代多项式实例分析
2015/05/07 Python
python利用有道翻译实现&quot;语言翻译器&quot;的功能实例
2017/11/14 Python
线程安全及Python中的GIL原理分析
2019/10/29 Python
经济实惠的豪华背包和行李袋:Packs Project
2018/10/17 全球购物
美国名牌手表折扣网站:Jomashop
2020/05/22 全球购物
澳大利亚女装精品店:Alannah Hill
2020/07/29 全球购物
如何写出好的Java代码
2014/04/25 面试题
设计总监岗位职责
2013/12/07 职场文书
关于中国梦的演讲稿
2014/04/23 职场文书
三八妇女节趣味活动方案
2014/08/23 职场文书
升学宴演讲稿
2014/09/01 职场文书
学生检讨书怎么写
2014/10/09 职场文书
高中生思想道德自我评价
2015/03/09 职场文书
2015年毕业生实习评语
2015/03/25 职场文书
工作经历证明范本
2015/06/15 职场文书
《索溪峪的野》教学反思
2016/02/19 职场文书
详解PHP设计模式之依赖注入模式
2021/05/25 PHP
Java基于Dijkstra算法实现校园导游程序
2022/03/17 Java/Android
SQL Server删除表中的重复数据
2022/05/25 SQL Server