首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >SFMC AMPscript理解控制表达评价不清

SFMC AMPscript理解控制表达评价不清
EN

Stack Overflow用户
提问于 2022-12-02 21:50:27
回答 1查看 15关注 0票数 0

下面这句话对我来说毫无意义。我很难理解为什么这会导致“免费送货”。有人能详细解释一下解释吗?

代码语言:javascript
复制
%%[

var @statusTier, @amount, @freeShipping
set @statusTier = "Bronze"
set @amount = 300

if @statusTier == "Bronze" or @statusTier == "Silver" and @amount > 500 then
  set @freeShipping = true
endif

]%%

<p>You %%=Iif(@freeShipping == true, "qualify","do not qualify")=%% for free shipping.</p>

Output:
The join operators in the above if statement will be evaluated as a single expression and will produce the following result:

<p>You qualify for free shipping.</p>

根据我的理解,300的设置值不是> 500,因此这不应该是一个真正的语句,并且应该输出“您不符合免费传送的条件”。我漏掉了什么吗?请帮帮忙,我是AMPscript的新手,对JavaScript知之甚少。

原版AMPSCRIPT指南:https://ampscript.guide/controlling-expression-evaluation/

,谢谢您的提前输入!

EN

回答 1

Stack Overflow用户

发布于 2022-12-02 22:17:41

ampscript指南文章中的示例是演示操作顺序

当OR条件周围没有括号时,代码将计算为true,因为它将整个条件看作一个表达式。

添加括号时的

代码语言:javascript
复制
if (@statusTier == "Bronze" or @statusTier == "Silver") and @amount > 500

首先计算()中的OR条件,然后计算and条件。这将以false的形式出现,因为@ result实际上小于500。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/74661845

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档