浅谈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 15 PHP
解析php中如何直接执行SHELL
Jun 28 PHP
codeigniter教程之上传视频并使用ffmpeg转flv示例
Feb 13 PHP
在PHP模板引擎smarty生成随机数的方法和math函数详解
Apr 24 PHP
PHP简单获取视频预览图的方法
Mar 12 PHP
php获取从html表单传递数组的方法
Mar 20 PHP
php session 写入数据库
Feb 13 PHP
yii2.0实现创建简单widgets示例
Jul 18 PHP
PHP读取大文件的几种方法介绍
Oct 27 PHP
Yii框架创建cronjob定时任务的方法分析
May 23 PHP
PHPStudy下如何为Apache安装SSL证书的方法步骤
Jan 23 PHP
解决laravel5中auth用户登录其他页面获取不到登录信息的问题
Oct 08 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
检测png图片是否完整的php代码
2010/09/06 PHP
destoon实现调用自增数字从1开始的方法
2014/08/21 PHP
ThinkPHP5.0 图片上传生成缩略图实例代码说明
2018/06/20 PHP
爆炸式的JS圆形浮动菜单特效代码
2010/03/03 Javascript
js几秒以后倒计时跳转示例
2013/12/26 Javascript
jQuery检测鼠标左键和右键点击的方法
2015/03/17 Javascript
JQuery插件jcarousellite的参数中文说明
2015/05/11 Javascript
原生js实现addClass,removeClass,hasClass方法
2016/04/27 Javascript
javaScript知识点总结(必看篇)
2016/06/10 Javascript
JavaScript兼容性总结之获取非行间样式案例
2016/08/07 Javascript
前端js弹出框组件使用方法
2020/08/24 Javascript
超详细动手搭建一个VuePress 站点及开启PWA与自动部署的方法
2019/01/27 Javascript
vue的三种图片引入方式代码实例
2019/11/19 Javascript
40行代码把Vue3的响应式集成进React做状态管理
2020/05/20 Javascript
vue实现动态给id赋值,点击事件获取当前点击的元素的id操作
2020/11/09 Javascript
[01:10]3.19DOTA2发布会 三代刀塔人第一代
2014/03/25 DOTA
仅用500行Python代码实现一个英文解析器的教程
2015/04/02 Python
Python的面向对象编程方式学习笔记
2016/07/12 Python
Android分包MultiDex策略详解
2017/10/30 Python
Python 将RGB图像转换为Pytho灰度图像的实例
2017/11/14 Python
windows环境下tensorflow安装过程详解
2018/03/30 Python
Python基于pandas实现json格式转换成dataframe的方法
2018/06/22 Python
使用Keras实现简单线性回归模型操作
2020/06/12 Python
pycharm 2020.2.4 pip install Flask 报错 Error:Non-zero exit code的问题
2020/12/04 Python
美国男女折扣服饰百货连锁店:Stein Mart
2017/05/02 全球购物
英国最大线上综合鞋类商城:Office
2017/12/08 全球购物
REISS美国官网:伦敦最受欢迎的时尚品牌
2019/08/16 全球购物
《十六年前的回忆》教学反思
2014/02/14 职场文书
《这儿真好》教学反思
2014/02/22 职场文书
硕士生工作推荐信
2014/03/07 职场文书
三年级评语大全
2014/04/23 职场文书
群众路线表态发言材料
2014/10/17 职场文书
不尊敬老师检讨书范文
2014/11/19 职场文书
护士先进个人总结
2015/02/13 职场文书
三八妇女节主持词
2015/07/04 职场文书
教师节获奖感言
2015/07/31 职场文书