WordPress奇怪与破碎的图像(第1部分)

时间:2009-07-22 14:44:50

标签: php wordpress

您能否告诉我您对此的看法,并可能看看您是否可以重新创建它:

目前,$ 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的新手,但我很确定这是疯狂的。 :)

2 个答案:

答案 0 :(得分:0)

assert()在你的代码中没有意义,你想要的是if语句。

答案 1 :(得分:0)

你不应该把断言作为字符串吗?