浅谈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.MVC的模板标签系统(三)
Sep 05 PHP
PHP 5.0对象模型深度探索之绑定
Sep 05 PHP
Php+SqlServer实现分页显示
Oct 09 PHP
PHP函数篇详解十进制、二进制、八进制和十六进制转换函数说明
Dec 05 PHP
深入apache host的配置详解
Jun 09 PHP
php生成缩略图填充白边(等比缩略图方案)
Dec 25 PHP
PHP中call_user_func_array回调函数的用法示例
Nov 26 PHP
php简单计算年龄的方法(周岁与虚岁)
Dec 06 PHP
浅谈php(codeigniter)安全性注意事项
Apr 06 PHP
PHPMAILER实现PHP发邮件功能
Apr 18 PHP
php依赖注入知识点详解
Sep 23 PHP
PHP论坛实现积分系统的思路代码详解
Jun 01 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中for循环语句的几种变型
2006/11/26 PHP
php 分页原理详解
2009/08/21 PHP
php 获取SWF动画截图示例代码
2014/02/10 PHP
编写PHP脚本清除WordPress头部冗余代码的方法讲解
2016/03/01 PHP
jquery调用wcf并展示出数据的方法
2011/07/07 Javascript
JavaScript中双叹号(!!)作用示例介绍
2014/04/10 Javascript
Jquery图片延迟加载插件jquery.lazyload.js的使用方法
2014/05/21 Javascript
node+express+jade制作简单网站指南
2014/11/26 Javascript
让javascript加载速度倍增的方法(解决JS加载速度慢的问题)
2014/12/12 Javascript
深入理解JavaScript系列(44):设计模式之桥接模式详解
2015/03/04 Javascript
js控制多图左右滚动切换效果代码分享
2015/08/26 Javascript
js学习阶段总结(必看篇)
2016/06/16 Javascript
JS事件添加和移出的兼容写法示例
2016/06/20 Javascript
再谈javascript常见错误及解决方法
2016/09/16 Javascript
js窗口震动小程序分享
2016/11/28 Javascript
JavaScript中正则表达式使数字、中文或指定字符高亮显示
2017/10/31 Javascript
微信小程序页面上下滚动效果
2020/11/18 Javascript
[02:52]2017DOTA2国际邀请赛中国区预选赛晋级之路
2017/07/03 DOTA
在Python中使用Neo4j数据库的教程
2015/04/16 Python
Python中线程的MQ消息队列实现以及消息队列的优点解析
2016/06/29 Python
Diango + uwsgi + nginx项目部署的全过程(可外网访问)
2018/04/22 Python
Python3.6日志Logging模块简单用法示例
2018/06/14 Python
python系统指定文件的查找只输出目录下所有文件及文件夹
2020/01/19 Python
铭万公司.net面试题笔试题
2014/07/20 面试题
STP的判定过程
2012/10/01 面试题
学生实习推荐信范文
2013/11/26 职场文书
校本教研工作方案
2014/01/14 职场文书
高中军训感言500字
2014/02/24 职场文书
协议书与合同的区别
2014/04/18 职场文书
党员民主生活会材料
2014/12/15 职场文书
妈妈别哭观后感
2015/06/08 职场文书
招商银行工作证明
2015/06/17 职场文书
2015年学校少先队工作总结
2015/07/20 职场文书
python爬虫--selenium模块
2021/03/31 Python
HTML常用标签超详细整理
2022/03/19 HTML / CSS
winserver2019安装软件一直卡在应用程序正在为首次使用做准备
2022/06/10 Servers