Bas*_*ers 3 php types casting shorthand-if ternary-operator
在写is_numeric($var) ? (Int)$var : (String)$var;
,我在想,如果它可能是能够将移动三元运算符的地方,我的部分投变量:
echo (is_numeric($var) ? Int : String)$var;
Run Code Online (Sandbox Code Playgroud)
不出我的意料,它不起作用:
PHP解析错误:语法错误,意外'$ var'(T_VARIABLE)
这是可能吗?或者可能接近我正在尝试做的事情?这更像是一种好奇的东西而不是使用它的需要.
是的,这是可能的.这应该适合你:
var_dump((is_numeric($var)?(int)$var :(string)$var));
Run Code Online (Sandbox Code Playgroud)
作为测试它的示例,您可以轻松地执行此操作:
$var = 5;
var_dump((true?(int)$var :(string)$var)); //Or var_dump((false?(int)$var :(string)$var));
Run Code Online (Sandbox Code Playgroud)
输出:
int(5) //string(1) "5"
Run Code Online (Sandbox Code Playgroud)
编辑:
他们只能想到做一些类似于你想要的东西:
settype($var, (is_numeric($var)?"int":"string"));
var_dump($var);
Run Code Online (Sandbox Code Playgroud)
归档时间: |
|
查看次数: |
583 次 |
最近记录: |