eval — 把字符串作为PHP代码执行

说明

mixed eval ( string $code_str )

把字符串 code_str 作为PHP代码执行。 除了其他,该函数能够执行储存于数据库文本字段内的PHP代码。

使用 eval() 时需注意几个因素:注意字符必须是有效的PHP代码,包括结尾的分号,以不至于解释器在 eval() 之后退出。并且正确地转义 code_str 中的东西。你可以使用一个PHP闭合标签来混合输出HTML和PHP代码。

同时需注意eval中的变量会被保留在之后的主脚本中。

参数

code_str

需要被执行的字符串 code_str 不能包含 PHP Opening tags

return 语句会立即中止当前字符串的执行。

返回值

eval() 返回 NULL,除非在执行的代码中 return 了一个值,函数返回该值。 如果在执行的代码中有一个解析错误, eval() 返回 FALSE,之后的代码将正常执行。无法使用 set_error_handler() 捕获 eval() 中的解析错误。

范例

Example #1 eval() 例子 - 简单的文本合并

<?php
$string = 'cup';
$name = 'coffee';
$str = 'This is a $string with my $name in it.';
echo $str. "\n";
eval("\$str = \"$str\";");
echo $str. "\n";
?>

以上例程会输出:

This is a $string with my $name in it.
This is a cup with my coffee in it.

注释

Note: 因为是一个语言构造器而不是一个函数,不能被 可变函数 调用。

Tip

和直接将结果输出到浏览器一样,可使用输出控制函数来捕获当前函数的输出,然后(例如)保存到一个 string 中。

Note:

如果在执行的代码中产生了一个致命的错误(fatal error),整个脚本会退出。

参见

eval(PHP 4, PHP 5)的更多相关文章

  1. JSON.parse 与 eval() 对于解析json的问题

    1.eval()与JSOn.parse的不同 eval() var c = 1; //全局变量 var jsonstr1 = '{"name":"a",&quo ...

  2. JSON.parse与eval的区别

    JSON.parse与eval和能将一个字符串解析成一个JSON对象,但还是有挺大区别. 测试代码 var A = "{ a: 1 , b : 'hello' }"; var B ...

  3. JS eval()函数的一些见解

    一.eval是基本使用规则 1 eval() 函数可计算某个字符串,并执行其中的的 JavaScript 代码. 2 eval(string) 3 string必需.要计算的字符串,其中含有要计算的 ...

  4. Javascript动态执行JS(new Function与eval比较)

    new Function与eval可以动态执行JS,只要把拼接好的JS方法,然后以字符串的形式传入到这两个函数,可以执行,其中new Function用在模板引擎比较多. 用 Function 类直接 ...

  5. Python:eval的妙用和滥用

    时间 2014-07-08 13:05:24 CSDN博客 原文  http://blog.csdn.net/zhanh1218/article/details/37562167 主题 Python ...

  6. JSON中eval与parse的区别

    json的的解析方法 (非原创) json的解析方法共有两种:eval_r() 和 JSON.parse(),使用方法如下: var jsonData = '{"data1":&q ...

  7. eval解析JSON中的注意点

       在JS中将JSON的字符串解析成JSON数据格式,一般有两种方式: 1.一种为使用eval()函数. 2. 使用Function对象来进行返回解析. 使用eval函数来解析,并且使用jquery ...

  8. jQuery Ajax请求(关于火狐下SyntaxError: missing ] after element list ajax返回json,var json = eval("("+data+")"); 报错)

    $.ajax({    contentType: "application/x-www-form-urlencoded;charset=UTF-8" ,    type: &quo ...

  9. 被嫌弃的eval和with

    × 目录 [1]eval [2]with 前面的话 eval和with经常被嫌弃,好像它们的存在就是错误.在CSS中,表格被嫌弃,在网页中只是用表格来展示数据,而不是做布局,都可能被斥为不规范,矫枉过 ...

  10. Global eval. What are the options?

    David Flanagan最近写了一个关于全局eval的简单表达式,可以用一行式子表示: var geval = this.execScript || eval; 尽管看起来很简短,但是跨浏览器的兼 ...

随机推荐

  1. centos7下git的使用和配置

    1.下载git,使用命令: yum install git 2.配置git: git config --global user.name "Your Name" git confi ...

  2. 在Extjs中动态增加控件

    Ext.onReady(function () { Ext.QuickTips.init(); Ext.form.Field.prototype.msgTarget = 'side'; var aut ...

  3. 【RF库Collections测试】Create Dictionary

    Name:Create DictionarySource:Collections <test library>Arguments:[ *key_value_pairs ]

  4. 解决Bootstrap布局注册表单input标签前增加必填项*提示与input框不在同一行问题

    注册表单部分代码如下: <form id="registForm" class="form-horizontal" action="${page ...

  5. 说说M451例程讲解之LED

    /**************************************************************************//** * @file main.c * @ve ...

  6. Path类和File类的应用

    今天是我学习C#基础的第13天,可以说马上就要结束这个基础课程,感觉学习的理论性的我不能说全部掌握了,我只想说在思路上面的语法以及用法我应该基本掌握了,感觉效果不错,不得不说,要想在一种语言上面有大的 ...

  7. 为什么说在js当中所有类的父类是Object类

    代码如下所示: function Parent(add,net,no,teacher) { this.add = add; this.net = net; this.no = no; this.tea ...

  8. EL表达式各种函数使用大全

      引入<%@ taglib prefix="fn" uri="http://java.sun.com/jsp/jstl/functions" %> ...

  9. 解决wamp、vertrigo等集成环境安装后apache不能启动的问题

    如果不是端口的问题,通常就是由于缺少vc库文件的支持,把vc2005.vc2008.vc2010抖安装一遍就呢过解决问题

  10. php面向对象的简单总结 $this $parent self

    面向对象涉及到的比较多,大概总结整理一下php的属性.对象,以及访问方式$this  $parent  self  的使用场景. 1. PHP类属性定义和访问方式: 1 <?php 2 clas ...