学习 PHP - 有人可以解释一下 if 语句吗?


Learning PHP - can someone explain this if statement?

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

还有::的事情是什么? 当我看到(不在此)一个|本身时,这是在做什么?

非常感谢您的任何帮助:)

该代码不执行任何操作。(从字面上看,它只检查东西,什么也不做)。

不要那样编码。


至于::,这称为范围解析运算符,它用于标记静态类变量、静态类方法和类常量。

单管道(|)是按位OR运算符

嗯,似乎这不仅仅是PHP。它是 Smarty 模板的一部分,这就是我们在 Smarty 模板文件中使用 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

如果我错了,请纠正我。

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

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

因此,您可能遗漏的 {if} 和 {else} 之间的部分是 if 中的条件为真时生成的(到 html)。

:: 事物是静态方法的调用。Phpfox 是一个具有静态方法的类。这些方法不需要对象,称为 ClassName::method()

您可以在智能模板页面中轻松使用其他条件。来自智能网站本身的示例。

{如果$name=='anil'} 阿尼尔·古普塔{其他}阿米塔·古普塔{/if}