所以我正在学习PHP,我正在学习更复杂的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}
还有什么关于?当我看到(不是在这里)一个|这本身是做什么的?
非常感谢您的帮助:)
答案 0 :(得分:3)
该代码什么都不做。 (从字面上看,它只检查东西并且不做任何事情)。
不要那样编码。
至于::
,它被称为 Scope Resolution Operator ,它用于标记静态类变量,静态类方法和类常量。
单个管道(|
)是 Bitwise OR Operator 。
答案 1 :(得分:1)
那么, 看起来这不仅仅是PHP。 它是智能模板的一部分,这就是我们在智能模板文件中使用if else的方式。
智能网站本身的例子。
{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
如果我错了,请纠正我。
答案 2 :(得分:0)
看起来像phpfox模板(使用smarty)。
http://www.phpfox.com/kb/article/231/template-tags-in-phpfox/
因此,如果if中的条件为真,那么你可能遗漏的{if}和{else}之间的部分就是生成(到html)的部分。
:: thing是静态方法的调用。 Phpfox是一个静态方法的类。这些方法不需要对象,称为ClassName :: method()
答案 3 :(得分:0)
你可以在smarty模板页面中轻松使用if else条件。 来自smarty网站本身的例子。
{if $ name ==' anil'} anil gupta {其他} 阿米塔古普塔 {/如果}