在php中是否可以将字符串var转换为类型名?

在php中是否可以将字符串var转换为类型名?,php,string,types,Php,String,Types,那么,我可以让这个代码工作吗: $typename='integer'; $tmp='12321321312'; $var=($typename)$tmp; 无使用条件,如: if($typename=='integer') $var=(integer) $tmp; 和不使用使用evals,如: eval( '$var=(' . $typename . ') $tmp;' ); 是的,可以使用(在PHP版本=>5.3.0上提供) 你可以

那么,我可以让这个代码工作吗:

    $typename='integer';
    $tmp='12321321312';
    $var=($typename)$tmp;
无使用条件,如:

    if($typename=='integer')
        $var=(integer) $tmp;
和不使用使用evals,如:

   eval( '$var=(' . $typename . ') $tmp;' );
是的,可以使用(在PHP版本=>5.3.0上提供)

你可以用

类型的可能值为:

  • “boolean”(从PHP4.2.0开始称为“bool”)
  • “整数”(从PHP 4.2.0开始,称为“int”)
  • “float”(仅在PHP4.2.0之后才可能,对于较旧版本,请使用不推荐的变体“double”)
  • “字符串”
  • “数组”
  • “对象”
  • “null”(自PHP 4.2.0起)

谢谢。它工作得很好。遗憾的是,我无法创建一个正确的搜索查询来找到这个函数。太棒了!不客气。我会搜索类似“动态类型转换”之类的内容。不过,很好的解决方案(IMHO)settype()要方便得多,因为函数的名称说明了它的功能。清除代码==好代码。
$typename = 'intval';
$tmp = '2323';
$var = $typename($tmp); // <= note the syntax difference
var_dump($var);
int(2323)
$typename = 'integer';
$tmp = '12321321312'; // $tmp will be passed as a reference
settype($tmp, $typename);

// $tmp is now an integer