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}

また、::のことは何ですか?そして私が見るとき(これにはない)| それ自体、それは何をしているのですか?

助けてくれてありがとう:)

4

4 に答える 4

3

そのコードは何もしません。(文字通り、それはものをチェックするだけで、それでは何もしません)。

そのようにコーディングしないでください。


スコープ解決演算子::と呼ばれる、は、静的クラス変数、静的クラスメソッド、およびクラス定数をマークするために使用されます。

単一のパイプ(|)はビットごとのOR演算子です。

于 2012-06-09T11:57:27.200 に答える
1

まあ、これは正確にはPHPだけではないようです。これはsmartyテンプレートの一部であり、これがsmartyテンプレートファイルで他の場合に使用する方法です。

smartyサイト自体からの例。

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

このリンクの詳細http://www.smarty.net/docsv2/en/language.function.if.tpl

私が間違っている場合は私を訂正してください。

于 2012-06-09T11:59:20.177 に答える
0

phpfoxテンプレートのように見えます(smartyを使用)。

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

したがって、おそらく省略した{if}と{else}の間の部分は、ifの条件がtrueの場合に(htmlに)生成されるものです。

::のことは、静的メソッドの呼び出しです。Phpfoxは、静的メソッドを持つクラスです。これらのメソッドはオブジェクトを必要とせず、ClassName :: method()と呼ばれます。

于 2012-06-09T12:04:15.107 に答える
0

それ以外の場合は、smartyテンプレートページで簡単に条件を設定できます。smartyサイト自体からの例。

{if $ name =='anil'} anil gupta {else} amita gupta {/ if}

于 2015-05-20T12:03:50.557 に答える