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 | 它本身在做什么?

非常感谢您的帮助:)

4

4 回答 4

3

该代码什么也不做。(从字面上看,它只检查东西而不做任何事情)。

不要那样编码。


至于 ,::那叫作用域解析操作符,用来标记静态类变量、静态类方法和类常量。

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

于 2012-06-09T11:57:27.200 回答
1

好吧,看起来这不仅仅是 PHP。它是 smarty 模板的一部分,这就是我们在 smarty 模板文件中使用 if else 的方式。

来自 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 中的条件为真则生成(到 html)的部分。

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

于 2012-06-09T12:04:15.107 回答
0

您可以在 smarty 模板页面中轻松使用 if else 条件。来自 smarty 网站本身的示例。

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

于 2015-05-20T12:03:50.557 回答