您能否告诉我您对此的看法,并可能看看您是否可以重新创建它:
目前,$ post-> post_content变量包含:
"before <img src="/path/to/valid_img.gif" /> after"
此代码位于主题header.php ...
的顶部------ Code --------
1: $str = $post->post_content;
2: assert( isset( $str ) );
3: assert( is_string( $str ) );
4: echo $str;
5: $str = 'before <img src="/path/to/nonexistant.gif" /> after';
6: assert( isset( $str ) );
7: echo $str;
--------------------
输出此...
------ Output ------
before <img src="/path/to/valid_img.gif" /> after
before <img src="/path/to/nonexistant.gif" /> after
--------------------
有了这些警告......
--- PHP Warnings ---
PHP Warning: assert() [<a href='function.assert'>function.assert</a>]: Assertion
failed in /path/to/header.php on line 2
PHP Warning: assert() [<a href='function.assert'>function.assert</a>]: Assertion
failed in /path/to/header.php on line 3
--------------------
为什么第4行会正确地回显$ str,如果断言()失败两次,当我知道100%它应该成功时?
破坏的图像src与设置或取消设置变量$ str有什么关系? WordPress的bug /古怪?
现在是疯狂的部分......
当第5-7行被注释掉,从而消除了nonexistant.gif时,不会出现assert()警告,并且输出STILL正确地产生了这个......
------ Output ------
before <img src="/path/to/valid_img.gif" /> after
--------------------
你有机会重现这个并告诉我你的想法吗?我是PHP的新手,但我很确定这是疯狂的。 :)
答案 0 :(得分:0)
assert()在你的代码中没有意义,你想要的是if语句。
答案 1 :(得分:0)
你不应该把断言作为字符串吗?