是否有可能在PHP中将字符串var转换为类型名称?

时间:2013-11-26 17:24:20

标签: php string types

那么,我可以使用此代码吗?

    $typename='integer';
    $tmp='12321321312';
    $var=($typename)$tmp;

没有使用条件,例如:

    if($typename=='integer')
        $var=(integer) $tmp;

AND WITHOUT 使用evals,例如:

   eval( '$var=(' . $typename . ') $tmp;' );

2 个答案:

答案 0 :(得分:2)

您可以使用settype

$typename = 'integer';
$tmp = '12321321312'; // $tmp will be passed as a reference
settype($tmp, $typename);

// $tmp is now an integer

类型的可能值为:

  • “boolean”(或者,自PHP 4.2.0起,“bool”)
  • “integer”(或者,自PHP 4.2.0起,“int”)
  • “float”(仅可用于PHP 4.2.0,旧版本使用已弃用的变体“double”)
  • “的字符串”
  • “阵列”
  • “对象”
  • “null”(自PHP 4.2.0起)

答案 1 :(得分:1)

是的,可以使用anonymous functions(在PHP版本=> 5.3.0上可用)。

$typename = 'intval';
$tmp = '2323';
$var = $typename($tmp); // <= note the syntax difference
var_dump($var);

输出:

int(2323)