使用字符串键入类型的类型

时间:2017-03-31 11:55:02

标签: php laravel-5 typecast-operator

我的表settings包含列: value - varchar类型包含设置值,type - 枚举类型包含变量类型"int", "string", "float"。如何使用type列中的字符串将值转换为此类型?

我试图在我的模型中这样做,但它不起作用:

public function getValueAttribute($value){
    return ($this->type)$value;
}

2 个答案:

答案 0 :(得分:2)

你不能使用这样的动态类型转换,相反,你必须使用一个函数。 settype()接受两个参数,即原始值,以及要将其类型转换为的新类型。

public function getValueAttribute($value){
    settype($value, $this->type);
    return $value;
}

答案 1 :(得分:1)

您必须使用settype()功能:

<?php 

$var = 42;
var_dump($var);  //  int 42
$type = 'string';
settype($var, $type);
var_dump($var);  //  string '42'

改编自您的代码段:

public function getValueAttribute($value){
    settype($value, $this->type);
    return $value;
}