关于PHP中eval函数的返回值

关于eval 的概念就是把字符串作为PHP代码执行。但是关于其返回值,有时候容易出错。

如下面定义一个函数

function get_func_type(){
    return array(1=>‘字符串处理‘,‘2‘=>‘数组处理‘);
}
你能正确说出例1,例2,例3的执行结果吗?

例1

$p=eval(‘get_func_type();‘);
trace($p);

例2

$p=eval(‘return get_func_type();‘);
trace($p);

例3

eval(‘$p=get_func_type();‘);
trace($p);

例1返回null,

例2返回如下

Array
(
    [1] => 字符串处理
    [2] => 数组处理
)

例3返回如下

“`

Array

(

[1] => 字符串处理

[2] => 数组处理

)

关于eval函数的返回值,手册上是如下定义的

这句话可能说的不是很清楚。简单点就是如果,执行语句中有return,且return不在函数里面,则返回Return后面的值,否则返回null。

时间: 2024-10-06 21:50:15

关于PHP中eval函数的返回值的相关文章

HashMap中put函数的返回值

put函数返回值是键值对后面的那个value值 今天写程序看到 statue=hashmap.put(x,y); 我一开始以为返回值是1或者0 后来仔细看一下api文档原来不是如此.. 不知道设计者的意图是什么??? public V put(K key, V value) Associates the specified value with the specified key in this map. If the map previously contained a mapping for

013_go语言中的函数多返回值

代码演示 package main import "fmt" func vals() (int, int) { return 3, 7 } func main() { a, b := vals() fmt.Println(a) fmt.Println(b) _, c := vals() fmt.Println(c) } 代码运行结果 3 7 7 代码解读: go语言的函数内建支持多返回值,例如可以同时返回一个函数的结果和错误信息 (int,int)标志着这个函数返回两个int类型的返回

Mybatis调用Oracle中的函数有返回值

本身这个项目后台是用SSM框架,试了网上好多种有返回值的方法返回都是空; 下面是我调用方法: 这是我的函数 我在Mybatis的写法是: SELECT DEAL_EBOND_ICODE_DATA(#{iCode,jdbcType=VARCHAR}) AS A from dual 在DAO层 这种写法可以直接获取返回值,而且和其他一般的方法没什么区别! 原文地址:https://www.cnblogs.com/zhangqb/p/11137409.html

在shell脚本中使用函数的返回值

#!/bin/bash - function mytest() { echo "arg1 = $1" if [ $1 = "1" ] ;then return 1 else return 0 fi } if mytest 2; then echo "aaaaaaaaaa" fi 执行结果: 稍微改一下 #!/bin/bash - function mytest(){ echo "arg1 = $1" if [ $1 = &qu

(转)函数中使用 ajax 异步 同步 返回值错误 主函数显示返回值总是undefined -- ajax使用总结

如图检测到函数返回值总是a jQuery ajax 得到返回值 方案1:通过js回调函数获取返回值 方案2: 添加代码: async: false, 1.ajax默认是异步调用的,所以得到的返回值是空值,要得到值必须改成同步:async: false,//同步. 2.必须定义一个全局变量 var result = ""来保存返回值.否则得到的是undefined function GetReturnValue(url, jsonText) { var result = "&q

关于 Shell中函数的返回值 问题

# !/bin/sh sum() { echo $(($1+$2)) return $(($1-$2)) } sum $1 $2 c=$(sum $1 $2) echo $? echo $c 执行命令:./bashTest 11 1 运行结果是: 12 -- sum $1 $2的结果 10 -- echo $?的结果,因为return的值为10 12 --  echo $c的结果,值为12,所以c并不会被附上return的值,echo $c时调用了sum函数,所以打印了12 我们对shell中的

ctypes获取扩展模块中函数的返回值

ctypes获取返回值 我们前面已经看到了,通过ctypes像扩展模块中的函数传参时是没有问题的,但是我们如何拿到返回值呢?我们之前都是使用printf直接打印的,但是这样显然不行,我们肯定是要拿到返回值去做一些别的事情的.那么我们看看如何使用ctypes获取函数的返回值. 获取整型返回值 int test1(int a, int b) { int c; c = a + b; return c; } void test2() { } 我们定义了两个函数,下面编译成dll文件,dll文件名叫做mm

JavaScript中Eval()函数的作用

Code highlighting produced by Actipro CodeHighlighter (freeware)http://www.CodeHighlighter.com/-->首先来个最简单的理解 eval可以将字符串生成语句执行,和SQL的exec()类似. eval的使用场合是什么呢?有时候我们预先不知道要执行什么语句,只有当条件和参数给时才知道执行什么语句,这时候eval就派上用场了.举个例子: 我们要做一个function(),功能是输入网页中两个个对象的名称,然后程

Ajax属性和函数以及 返回值之XML格式和文本格式(二)

(一) 客户端请求文本之json格式:接收到json格式,再有js解析(具体先eval成对象,然后.即可) var text = this.responseText; var book = eval('('+ text +')'); document.getElementById('btitle').value = book.title; document.getElementById('bintro').value = book.intro; //其中btitle和bintro是客户端网页中的