2012-06-09 53 views
0

所以我正在學習PHP,以及我學習phpfox更復雜的標準。 我遇到的一個問題是用幾行代碼 - 我得到他們做的。但我不明白他們爲什麼以這種方式構建。有人可以解釋嗎?學習PHP - 有人可以解釋這個如果陳述嗎?

在下面的代碼行中的if語句由{}走投無路而不是通常的:

if thing('condition') { 
do stuff 
} 

方式,我很熟悉。爲什麼是這樣?

{if Phpfox::isUser() && !PHPFOX_IS_AJAX && $sCustomViewType === null} 
{if (Phpfox::getUserBy('profile_page_id') > 0 && defined('PHPFOX_IS_USER_PROFILE')) 
|| (isset($aFeedCallback.disable_share) && $aFeedCallback.disable_share) 
|| (defined('PHPFOX_IS_USER_PROFILE') && !Phpfox::getService('user.privacy')->hasAccess('' . $aUser.user_id . '', 'feed.share_on_wall')) 
|| (defined('PHPFOX_IS_USER_PROFILE') && !Phpfox::getUserParam('profile.can_post_comment_on_profile')) 
} 

{else} 

另外什麼是::的事情?當我看到(而不是在這)a |本身,這是幹什麼的?

非常感謝您的幫助:)

+0

這是謎語時間對我來說:) [符號的 – Sarfraz

+0

可能重複 - 這是什麼符號在PHP中意味着什麼?](http:// stackoverflow。com/questions/3737139/reference-what-does-this-symbol-mean-in-php) – NikiC

+0

我的猜測是,kooky PHP語法可能是某種模板語言,儘管我不認識它。你還應該看看[範圍解析運算符'::'](http://php.net/manual/en/language.oop5.paamayim-nekudotayim.php)和[按位或運算符'|'](http ://php.net/manual/en/language.operators.bitwise.php)。 – lonesomeday

回答

0

看起來像phpfox模板(使用smarty)。

http://www.phpfox.com/kb/article/231/template-tags-in-phpfox/

所以{if}個之間的部分與其他{}你可能已經離開了,是被生成的內容(爲HTML),如果在條件,如果是真實的。

:: thing是靜態方法的調用。 Phpfox是一個靜態方法的類。這些方法不需要一個對象,並且被稱爲ClassName :: method()

3

這段代碼什麼都不做。 (從字面上看,它只是檢查一些東西,並且什麼也不做)。

不要這樣編碼。


至於::,這就是所謂的Scope Resolution Operator,它用來標記靜態類變量,靜態類方法和類常量。 ()是Bitwise OR Operator

+0

感謝所有的信息人:)我會研究smarty模板 - 我認爲它檢查的東西無關緊要的事實是毫無意義的。 人員堆棧溢出對於學習東西非常棒。你們總是會有這麼棒的信息。 – user1368968

1

那麼, 它似乎並不完全是PHP的。 它是smarty模板的一部分,這就是我們如何在smarty模板文件中使用if else。

來自smarty網站本身的例子。此鏈接http://www.smarty.net/docsv2/en/language.function.if.tpl

{if $name eq 'Fred'} 
    Welcome Sir. 
{elseif $name eq 'Wilma'} 
    Welcome Ma'am. 
{else} 
    Welcome, whatever you are. 
{/if} 

詳情DO糾正我,如果我錯了。

+0

這似乎是consensu,我會研究它 - 感謝您的鏈接 – user1368968

+0

@ user1368968歡迎您。這必須是它。 – avk

0

您可以在smarty模板頁面中輕鬆使用條件。 來自smarty網站本身的例子。

{如果$名稱== '阿尼爾'} 阿尼爾古普塔 {}其他彌陀 古普塔 {/ if}個