动态调用函数时的命令执行对于eval()和assert()的执行问题
一.学到的知识点:
- bool or die() 当 前面的 为真的时候,后面的就不执行了
- assert()语法 。的知识点如果 assertion 是字符串,它将会被 assert() 当做 PHP 代码来执行。跟eval()类似, 不过eval($assertion)只是执行符合php编码规范的$code_str
assert(mixed $assertion, $exception) // 返回值为bool型
assert()会检查 assertion,并在结果为false的时候采取适当的行动。 - 自己的感觉把,就是assert()也是命令执行函数,但是要求比eval的低,只要里面有PHP的代码,然后动一动就能够执行了,详情可以看下面的
- 不足:。不够细心,没有研究透assert函数,并且刚开始没有想到去闭合strops这个函数,闭合后使strops这个函数依旧可以发挥作用。
讲真的没看懂是什么意思, 我这里一演示,就明白了,
第一次实验,感觉他和eval很像,能够执行任意命令
那么这句话, 当assertion结果为false的情况采取行动又是什么意思呢?
这里assertion为 false 也执行了,为true的时候更不用说,也执行,,,
那么这就感觉像一个eval一样, 但是要求比eval更低一点,eval里面必须是严格的PHP代码才能够执行,
但是这个assert()呢,只需要这个字符串里面有PHP的代码就好