Php 什么';有什么区别?eval()还是直接调用函数?
我不是php专家,我不知道a和b之间的区别(1) a、 )Php 什么';有什么区别?eval()还是直接调用函数?,php,eval,Php,Eval,我不是php专家,我不知道a和b之间的区别(1) a、 )eval('return')。base64_解码(“编码的文本”)。“;”) b、 )base64解码(“编码文本”) -我认为,a是php代码,b只是字符串。我的另一个问题是: c和d之间的区别(2)是什么 c、 )eval('return')。base64_解码(“编码的文本”)。“;”) d、 )eval(base64解码(“编码文本”) 所以我有两个问题。谁能回答/帮助 谢谢。编辑:哎呀,第二个问题读错了 对于第一个问题:在一种情
eval('return')。base64_解码(“编码的文本”)。“;”)
b、 )base64解码(“编码文本”)
-我认为,a是php代码,b只是字符串。我的另一个问题是:
c和d之间的区别(2)是什么
c、 )eval('return')。base64_解码(“编码的文本”)。“;”)
d、 )eval(base64解码(“编码文本”)
所以我有两个问题。谁能回答/帮助
谢谢。编辑:哎呀,第二个问题读错了
对于第一个问题:在一种情况下,eval()
被无缘无故地使用eval()
只有在出于某种原因将某些PHP代码动态构建为字符串时才是必需的,并且应该非常非常小心地使用。作为直接调用函数的替代方法,它当然不是必需的
至于第二个问题,区别在于要计算哪个字符串。案例(c)将返回base-64解码“编码文本”的结果。也就是说,它将返回一个解码版本。案例(d)将首先解码文本,然后尝试将其作为PHP代码执行。所以(d)实际执行解码结果,(c)不执行,它只返回解码文本。编辑:哇,第二个问题读错了
对于第一个问题:在一种情况下,eval()
被无缘无故地使用eval()
只有在出于某种原因将某些PHP代码动态构建为字符串时才是必需的,并且应该非常非常小心地使用。作为直接调用函数的替代方法,它当然不是必需的
至于第二个问题,区别在于要计算哪个字符串。案例(c)将返回base-64解码“编码文本”的结果。也就是说,它将返回一个解码版本。案例(d)将首先解码文本,然后尝试将其作为PHP代码执行。所以(d)实际执行解码结果,(c)不执行,它只返回解码文本。忘记eval,在这个阶段尽量不要使用。 你应该问问他们之间有什么区别
$var = base64_decode("encoded_text")
及
正如查德所写,尽量避免使用eval!它只执行$variable中的代码。例如
$var = 'base64_decode("encoded_text")';
return eval($var);
忘记eval,在这个阶段尽量不要使用。 你应该问问他们之间有什么区别
$var = base64_decode("encoded_text")
及
正如查德所写,尽量避免使用eval!它只执行$variable中的代码。例如
$var = 'base64_decode("encoded_text")';
return eval($var);
让我们将您的两个案例分别标记为案例X(a部分和b部分)和案例Y(c部分和d部分) 案例十 因此,这两个部分彼此没有区别。事实上,a部分有一些冗余 如果您缓慢地评估它们,您会注意到它是多么冗余: a部分
在这一部分中,不同之处在于您在字符串中添加了
eval
语句和return
,以进行求值
echo eval('return')。base64_解码(“编码的_文本”)。“;”代码>
echo eval('return“decoded_text”)”
echo“解码文本”代码>
echo base64_解码(“编码的_文本”)代码>
echo“解码文本”代码>
echo eval('return')。base64_解码(“编码的_文本”)。“;”代码>
echo eval('return“decoded_text”)”
echo“解码文本”代码>
echo eval(base64解码(“编码文本”)代码>
echo eval(“解码文本”)代码>-此处可能存在语法错误,因为解码的\u文本
可能是正确的PHP代码,也可能不是正确的PHP代码
让我们将您的两个案例分别标记为案例X(a部分和b部分)和案例Y(c部分和d部分) 案例十 因此,这两个部分彼此没有区别。事实上,a部分有一些冗余 如果您缓慢地评估它们,您会注意到它是多么冗余: a部分
在这一部分中,不同之处在于您在字符串中添加了
eval
语句和return
,以进行求值
echo eval('return')。base64_解码(“编码的_文本”)。“;”代码>
echo eval('return“decoded_text”)”
echo“解码文本”代码>
echo base64_解码(“编码的_文本”)代码>
echo“解码文本”代码>
echo eval('return')。base64_解码(“编码的_文本”)。“;”代码>
echo eval('return“decoded_text”)”
echo“解码文本”代码>
echo eval(base64解码(“编码文本”)代码>
echo eval(“解码文本”)代码>-此处可能存在语法错误,因为解码的\u文本
可能是正确的PHP代码,也可能不是正确的PHP代码
在a-2部分:回声评估(“返回“解码文本”);:这是否等于->回显“解码文本”?有一个eval函数。这是如何产生相同的结果的?你能告诉我吗?因为我不知道。我对每个部分所做的是向你展示当慢慢分解时,评估是怎样的。所以a-1和a-2部分是一样的。不,我说的是a-2和a-3。是一样的吗?是的。a-2在a-2部分计算为a-3:echo eval('返回“解码文本”);:这是否等于->回显“解码文本”?有一个eval函数。这是如何产生相同的结果的?你能告诉我吗?因为我不知道。我对每个部分所做的是向你展示当慢慢分解时,评估是怎样的。所以a-1和a-2部分是一样的。不,我说的是a-2和a-3。是一样的吗?是的。a-2评估为a-3