“压缩”代码在三进制条件运算中添加前缀到值

问题描述 投票:0回答:2

出于好奇...是否有可能以最短的形式(较少的php代码字符和重复项)在单个语句中编写此类代码?例如而不同时将document部分作为字符串和变量重复。

if (empty($id)){
  $fileName = "document.pdf";
} else {
  $fileName = "document_$id.pdf"; // the "_" is important
}

如果删除下划线,则可以使用速记三元运算符:

$fileName = 'document'.(empty($id) ?: '').'pdf';

如何在上述三元运算中包含下划线?

也许是“如果为true,则带有前缀连接的三进制”运算符...

php optimization prefix conditional-operator php-7.3
2个回答
0
投票

这是一个可能的解决方案,但是它仍然重复$id参考...

$fileName = 'document' . (!empty($id) ? '_' . $id : '') . '.pdf';

0
投票

尝试一下

$fileName = rtrim('document' . '_' . $id, '_') . '.pdf';
© www.soinside.com 2019 - 2024. All rights reserved.