词条 | eval |
释义 | 1.Eval方法参数 : codeString 必选。包含有效 JScript 代码的字符串。 override 可选项。确定要应用于 codeString 中代码的安全权限的字符串。 eval 函数允许动态执行 JScript 源代码。 传递给 eval 方法的代码执行时所在的上下文和调用 eval 方法时的上下文一样。请注意,在 eval 语句中定义的新变量或类型对于封闭程序是不可见的。 除非将字符串“unsafe”传递为第二个参数,否则,传递至 eval 方法的代码在受限安全上下文中执行。受限安全上下文禁止访问系统资源,如文件系统、网络或用户界面。如果代码试图访问这些资源,则会产生安全异常。 当 eval 的第二个参数为字符串“unsafe”时,传递给 eval 方法的代码在调用代码所在的安全上下文中执行。第二个参数是区分大小写的,因此,字符串“Unsafe”或“UnSAfE”不会重写受限安全上下文。 示例: 例如,下面的代码将变量 mydate 初始化为测试日期或当前日期,这取决于变量 doTest 的值: var doTest : boolean = true; var dateFn : String; if(doTest) dateFn = "Date(1971,3,8)"; else dateFn = "Date()"; var mydate : Date; eval("mydate = new "+dateFn+";"); print(mydate); 该程序的输出为:Thu Apr 8 00:00:00 PDT 1971 2.在ActionScript 中eval 函数 eval(expression:Object) : Object eval(expression:String) : Object 按照名称访问变量、属性、对象或影片剪辑。如果表达式是变量或属性,则返回该变量或属 性的值。如果表达式是对象或影片剪辑,则返回对该对象或影片剪辑的引用。如果无法找到 表达式中列举的元素,则返回 undefined。 在 Flash 4 中,eval() 用于模拟数组;在 Flash 5 或更高版本中,您应该使用 Array 类来模 拟数组。 在 Flash 4 中,您还可以使用 eval() 动态地设置和检索变量值或实例名称。然而,也可以 使用数组访问运算符 ([]) 来实现这一点。 在 Flash5 或更高版本中,不能使用 eval() 动态设置和检索变量值或实例名称,因为不能在 等式的左侧使用 eval()。例如,将代码 eval ("var" + i) = "first"; 替换为: this["var"+i] = "first" 或者替换为: set ("var" + i, "first"); 可用性:Flash Player 5 ; ActionScript 1.0 3.Eval方法实例例子 1在本例中,我们将在几个字符串上运用 eval(),并看看返回的结果: <script type="text/javascript"> eval("x=10;y=20; document.write(x*y)"); document.write(eval("2+2")); var x=10; document.write(eval(x+17)) </script> 输出:200427 例子 2看一下在其他情况中,eval() 返回的结果: eval("2+3") // 返回 5 var myeval = eval; // 可能会抛出 EvalError 异常 myeval("2+3"); // 可能会抛出 EvalError 异常 可以使用下面这段代码来检测 eval() 的参数是否合法: try { alert("Result:" + eval(prompt("Enter an expression:",""))); }catch(exception) { alert(exception); } 4.VBS中的 eval()让我们来比较一下eval的威力 第一种情况,不用eval: dim x x=Inputbox("") msgbox x 输入3+2 ,出来还是3+2 第二种情况,用上eval: dim x x=Inputbox("") msgbox eval(x) 输入3+2,会出来5 输入6*9,会出来54 输入sqr(49),会出来7 ( sqr()是开平方函数 ) 很神奇啊! PHP中的eval()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. "\"; eval("\\$str = \\"$str\\";"); echo $str. "\"; ?> 以上例程会输出: This is a $string with my $name in it.This is a cup with my coffee in it. Note: 因为是一个语言构造器而不是一个函数,不能被 可变函数 调用。 Tip和直接将结果输出到浏览器一样,可使用输出控制函数来捕获当前函数的输出,然后(例如)保存到一个 string 中。 Note: 如果在执行的代码中产生了一个致命的错误(fatal error),整个脚本会退出。 |
随便看 |
百科全书收录4421916条中文百科知识,基本涵盖了大多数领域的百科知识,是一部内容开放、自由的电子版百科全书。