我猜这个问题已经被问过了。我知道在php中,您可以像本例中那样更改变量的数据类型。
$var = '3';
if (is_string($var))
echo "variable is now string <br />";
$var = $var+1;
if (is_int($var))
echo "variable is now integer <br />";
但是,一个变量能否在一个时间点容纳多个数据类型?
一个数组可以包含许多任何类型的项。
$array = array("string",1,false,fopen(__FILE__,"r"));
var_dump($array);
但作为一个变量本身,它只能是一种类型——array
。
尽管我认为这个问题毫无意义,也没有任何理由提出这个问题。同时拥有一个多种类型的变量有什么意义?可能只是问得不清楚。
如果在代码中添加这样的var_dump:
$var = '3';
var_dump($var);
if (is_string($var))
echo "variable is now string <br />'n";
$var = $var+1;
var_dump($var);
if (is_int($var))
echo "variable is now integer <br />'n";
您的输出将是:
string(1) "3"
variable is now string <br />
int(4)
variable is now integer <br />
这表明了一个简单规则,PHP允许您以任何方式使用变量,并且在您的代码中使用时更改它所代表的数据类型。
否。PHP只是按照自己喜欢的方式解释值,因为它是弱类型的。
否。一个变量一次只能包含一个值。当然,该值可以是数组或对象,其本身可以包含多个值,但变量本身仍然是对单个对象的引用。
是。如果是数组或对象,则变量可以是单个时间点上多个数据类型和值的持有者。