PHP - 任何PHP变量的默认数据类型是什么?

时间:2012-10-30 15:34:29

标签: php

PHP是松散的类型语言,但有人可以告诉我,任何PHP变量的默认数据类型是什么?它的隐含数据类型是什么?

4 个答案:

答案 0 :(得分:8)

PHP的变量是动态的,并根据其中的数据而变化。因此默认情况下它们没有数据类型。

答案 1 :(得分:5)

来自manual on variables

  

没有必要在PHP中初始化变量,但它是一个   非常好的做法。未初始化的变量的默认值为   它们的类型取决于它们的使用环境 - 布尔值   默认为FALSE,整数和浮点数默认为零,字符串(例如   在echo中使用)被设置为空字符串,数组变为空   阵列。

所以,它们就是你对它们所做的。

答案 2 :(得分:2)

OP理解PHP是一种松散类型的语言,因此任何初始化变量的类型都由它拥有的数据决定;所以这样阅读,问题就变成未初始化变量的类型是什么? - 答案是null

PHP通常不允许你声明变量而不用初始化它们,没有直接的等价于:

Dim SomeVar

因此,查看“默认”数据类型的唯一方法是评估尚未设置的变量或不包含数据的类成员。

1:尚未设置的变量

echo $someVar === null ? "NULL" : "NOT NULL"; //outputs NULL (and triggers a Warning)

2:没有数据的声明的类成员

class Test {
  public static $someVar;
}

var_dump(Test::$someVar); // outputs NULL

因此:

  • 任何初始化变量的类型由其拥有的数据确定

  • 任何未初始化的变量的类型为null

答案 3 :(得分:-1)

类型杂耍

PHP不要求(或支持)变量声明中的显式类型定义;变量的类型由使用变量的上下文决定。也就是说,如果将字符串值赋给变量$ var,则$ var变为字符串。如果然后将整数值赋给$ var,则它变为整数。

PHP的自动类型转换的一个例子是加法运算符'+'。如果任一操作数是浮点数,则两个操作数都被计算为浮点数,结果将是浮点数。否则,操作数将被解释为整数,结果也将是整数。请注意,这不会改变操作数本身的类型;唯一的变化是如何评估操作数以及表达式本身的类型。

来源:http://www.php.net/manual/en/language.types.type-juggling.php