出于好奇...是否有可能以最短的形式(较少的php代码字符和重复项)在单个语句中编写此类代码?例如而不同时将document
部分作为字符串和变量重复。
if (empty($id)){
$fileName = "document.pdf";
} else {
$fileName = "document_$id.pdf"; // the "_" is important
}
如果删除下划线,则可以使用速记三元运算符:
$fileName = 'document'.(empty($id) ?: '').'pdf';
如何在上述三元运算中包含下划线?
也许是“如果为true,则带有前缀连接的三进制”运算符...
这是一个可能的解决方案,但是它仍然重复$id
参考...
$fileName = 'document' . (!empty($id) ? '_' . $id : '') . '.pdf';
尝试一下
$fileName = rtrim('document' . '_' . $id, '_') . '.pdf';