【发布时间】:2015-03-26 07:00:41
【问题描述】:
在编写is_numeric($var) ? (Int)$var : (String)$var; 时,我想知道是否可以将ternary operator 移动到我cast 变量所在的部分:
echo (is_numeric($var) ? Int : String)$var;
不出所料,它不起作用:
PHP 解析错误:语法错误,意外的 '$var' (T_VARIABLE)
这有可能吗?或者可能与我正在尝试做的事情接近?与其说是使用它,不如说是一种好奇心。
【问题讨论】:
-
强制转换改变了表达式左侧解释值的方式。三元组返回选择运行时值(不是类型)。您需要以不同的方式转换相同的变量,而不是选择类型...我看到 @Rizier123 已将其添加为答案:)
标签: php types casting ternary-operator shorthand-if