2009-07-22 81 views
1

你能告訴我你的這個意見,並可能看是否可以重新創建它:WordPress的怪胎(第1部分)

目前,$後> 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,斷言()警告將不會出現,輸出仍能正常生產這個.. 。

------ Output ------ 
before <img src="/path/to/valid_img.gif" /> after 
-------------------- 

有沒有機會重現這一點,告訴我你的想法?我是PHP新手,但我很確定這是瘋狂。 :)

回答

0

assert()在你的代碼中沒有意義,你想要的是一個if語句。

+0

真的嗎?我認爲assert()被用於調試? – Jeff 2009-07-22 14:53:09

+0

更好地使用var_dump(isset($ str)),這樣你就可以看到isset()的返回值,而不是assert()的返回值 – smoove 2009-07-22 14:57:16

0

你不應該斷言作爲一個字符串?