学习PHP - 有人可以解释这个if语句吗?

时间:2012-06-09 11:53:25

标签: php

所以我正在学习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}

还有什么关于?当我看到(不是在这里)一个|这本身是做什么的?

非常感谢您的帮助:)

4 个答案:

答案 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 {其他} 阿米塔古普塔 {/如果}