我在制作涉及链式三元条件运算符的语句时遇到了一些麻烦。
显然我可以用标准的方式编写它们,但是知道它们为什么不能正常工作会很有用。
我想做的伪代码:
如果 $feature 以 's' 结尾,则使 $group = 大写 $feature
如果 $feature 以 'y' 结尾,则在 $group = 大写 $feature 之前删除 y 并替换为 'ies'
如果 $feature 以其他任何内容结尾,则添加一个 's' 并使 $group = 大写 $feature。
我尝试过使用 c 风格的 ifs:
substr($feature,-1) eq 'y' ? $group = uc(chop($feature)).'IES'
: substr($feature,-1) ne 's' ? $group = uc($feature).'S'
: $group = uc($feature);
和
substr($feature,-1) ne 's' ? substr($feature,-1) eq 'y' ? $group = uc(chop($feature)).'IES'
: $group = uc($feature).'S'
: $group = uc($feature);
发生的情况是,如果我在 $feature 中有一个以 say e
or结尾的字符串n
,它不会找到$group = uc($feature).'S'
. 我尝试更改并使用它,eq 's'
但随后它S
在已经以s
.
任何帮助表示赞赏!
编辑:
这要归功于dan1111
:
$group = substr($feature,-1) ne 's' ? substr($feature,-1) eq 'y' ? uc(chop($feature)).'IES'
: uc($feature).'S'
: uc($feature);