所以,我能得到这个代码的工作:是否有可能在PHP中将字符串变成类型名称?
$typename='integer';
$tmp='12321321312';
$var=($typename)$tmp;
WITHOUT使用条件,如:
if($typename=='integer')
$var=(integer) $tmp;
,不附带使用evals,如:
eval('$var=(' . $typename . ') $tmp;');
所以,我能得到这个代码的工作:是否有可能在PHP中将字符串变成类型名称?
$typename='integer';
$tmp='12321321312';
$var=($typename)$tmp;
WITHOUT使用条件,如:
if($typename=='integer')
$var=(integer) $tmp;
,不附带使用evals,如:
eval('$var=(' . $typename . ') $tmp;');
您可以使用settype
。类型的
$typename = 'integer';
$tmp = '12321321312'; // $tmp will be passed as a reference
settype($tmp, $typename);
// $tmp is now an integer
候选条件的值是:
是,可以使用anonymous functions(PHP版本可用=> 5。 3.0)。
$typename = 'intval';
$tmp = '2323';
$var = $typename($tmp); // <= note the syntax difference
var_dump($var);
输出:
int(2323)
的最佳解决方案,但是,(恕我直言)的setType()是更为方便,因为函数的名字告诉它做什么。清除代码==好的代码。 – haldagan
谢谢。它完美的作品。为了我的遗憾,我无法组成正确的搜索查询来查找此功能。 – haldagan
太棒了!别客气。我会搜索像“动态类型铸造”的东西。 – swatkins