很多站长朋友们都不太清楚eval界定符php,今天小编就来给大家整理eval界定符php,希望对各位有所帮助,具体内容如下:
本文目录一览: 1、 eval()函数的作用是什么? 2、 eval("\$str = \"$str\";");里面又转义又引号的看不懂?解释一下 3、 Eval()和Bind()的区别 4、 php eval怎样执行系统命令? 5、 php执行eval&40;phpinfo时,会返回什么信息 eval()函数的作用是什么?作用是把对应的字符串解析成js代码并运行。eval()()是程序语言中的函数,功能是获取返回值,不同语言大同小异,函数基础是返回值= eval(codeString),如果eval函数在执行时遇到错误,则抛出异常给调用者。
如果eval函数在执行时遇到错误,则抛出异常给调用者。类似的函数是loadcode,loadcode不立即执行代码,另外返回一个函数对象。并且loadcode支持路径参数,评估不支持。评估不支持代码中的返回语句,将代码作为表达式直接计算出结果。
相关信息
Eval函数在PHP代码中的用法:eval()函数把字符串按照PHP代码来计算。该字符串必须是合法的PHP代码,且必须以分号结尾。如果没有在代码字符串中调用返回语句,则返回NULL。如果代码中存在解析错误,则eval()函数返回false。
Eval函数在VBScript脚本语言中的使用:在VB脚本语言中,Eval函数具有两层英文,一是实现计算表达的值,即eval()函数可将字符串转换为代码执行,并返回一个或多个值;二是运行指定的代码。
eval("\$str = \"$str\";");里面又转义又引号的看不懂?解释一下同看到了手册里的这个解释;php里eval是把字符串当作代码执行
php里,单引号内的变量不会被执行,双引号内的变量是会被执行的,而如果双引号内变量加上反斜杠就可以让这个变量不被执行,成为特例,,
比如 $a=5; echo "\$a=".$a;// 结果会输出 $a=5
一开始的 \$str 就是这个意思, 前面相当于 $str= ,就是给 $str 这个变量赋值;
后面的两个反斜杠加引号就是我们常见的了,就是表示引号,所以后面的是 "$str" ,这个$str 会被执行,就是 " 'This is a $string with my $name in it.' "
这里又涉及一个双引号嵌套单引号的问题,比如sql语句
$sql = "select * from user where id = '$id' ";
这里就有双引号嵌套单引号,根据我们sql的经验这里面的变量 $id 是会被执行的~
也就是说双引号嵌套单引号那么单引号里的变量也会被执行,,
或者可以简单地总结:双引号内的变量如果没有前面加反斜杠的特例,则都是要执行的;
这个eval双引号内的将要被执行的代码就是 $str="'This is a $string with my $name in it.' " ; 这样就明白了吧~
Eval()和Bind()的区别1、Eval取出来的数据时只读的,而Bind是可更新的数据。2、Eval通常用来需要对数据进行格式化成字符串,因而和Bind方法比,性能会有所下降。3、在运行时,Eval调用DataBinder对象的Eval方法,同时引用命名容器的当前数据项。命名容器通常是包含完整记录的数据绑定控件的最小组成部分,如 GridView 控件中的一行。因此,只能对数据绑定控件的模板内的绑定使用 Eval 方法。具体内容可以参考MSDN中关于DataBinder.Eval()方法的描述。注意:当前容器的数据项:Container.DataItem4、Bind()方法的运用,主要应用场景:GridView等可编辑控件的更新操作上。当单击Update按钮时,使用 Bind 语法绑定的每个控件属性值都会被提取出来,并传递给数据源控件以执行更新操作。
php eval怎样执行系统命令?eval — 把字符串作为PHP代码执行
说明
mixedeval( 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 #1eval()例子 - 简单的文本合并
<?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),整个脚本会退出。
Linux 中
shell中的eval命令将会首先扫描命令行进行所有的替换,然后再执行命令。该命令使用于那些一次扫描无法实现其功能的变量。该命令对变量进行两次扫描。这些需要进行两次扫描的变量有时候被称为复杂变量。
例如
$:cat ext
count=3
cmd=echo
cmd="$cmd \$$count"
ext 11 22 33
此时cmd=" echo $3"
eval $cmd 等价于 "echo 33 "
php执行eval&40;phpinfo时,会返回什么信息关于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。
关于eval界定符php的介绍到此就结束了,不知道本篇文章是否对您有帮助呢?如果你还想了解更多此类信息,记得收藏关注本站,我们会不定期更新哦。
查看更多关于eval界定符php php eval函数的作用是什么?的详细内容...