📜  PHP-变量类型

📅  最后修改于: 2020-10-21 05:04:45             🧑  作者: Mango


在PHP程序中间存储信息的主要方法是使用变量。

这是有关PHP中变量的最重要的知识。

  • PHP中的所有变量都以前导美元符号($)表示。

  • 变量的值是其最近赋值的值。

  • 变量使用=运算符分配,变量在左侧,表达式在右侧。

  • 可以但不必在分配之前声明变量。

  • PHP中的变量没有固有类型-变量不事先知道它是否会被用来存储数字或字符的字符串。

  • 在分配变量之前使用的变量具有默认值。

  • PHP可以很好地在必要时将类型自动从一种转换为另一种。

  • PHP变量类似于Perl。

PHP共有八种数据类型,可用于构造变量-

  • 整数-是整数,不带小数点,例如4195。

  • 双精度数-是浮点数,例如3.14159或49.1。

  • 布尔值-只有两个可能的值true或false。

  • NULL-是一种只有一个值的特殊类型:NULL。

  • 字符串-是字符序列,例如“ PHP支持字符串操作”。

  • 数组-是其他值的命名和索引集合。

  • 对象-是程序员定义的类的实例,可以打包该类专用的其他类型的值和函数。

  • 资源-是特殊变量,用于保存对PHP外部资源(例如数据库连接)的引用。

前五个是简单类型,接下来的两个(数组和对象)是复合类型-复合类型可以打包任意类型的其他任意值,而简单类型则不能。

在本章中,我们将仅解释简单的数据类型。数组和对象将分别说明。

整数

它们是整数,没有小数点,例如4195。它们是最简单的类型。它们对应于简单的整数,包括正数和负数。整数可以分配给变量,也可以在表达式中使用,例如-

$int_var = 12345;
$another_int = -12345 + 12345;

整数可以是十进制(以10为底),八进制(以8为底)和十六进制(以16为底)格式。默认为十进制格式,八进制整数以前导0表示,十六进制以前导0x表示。

对于大多数常见平台,最大整数是(2 ** 31.1)(或2,147,483,647),最小(最大负数)是。 (2 ** 31。1)(或.2,147,483,647)。

双打

他们喜欢3.14159或49.1。默认情况下,以最少的小数位数加倍打印。例如,代码-

");
?>

它产生以下浏览器输出-

2.28888 + 2.21112 = 4.5

布尔型

它们只有两个可能的值true或false。 PHP提供了两个常量,尤其是用作布尔值的常量:TRUE和FALSE,可以这样使用-

if (TRUE)
   print("This will always print
"); else print("This will never print
");

将其他类型解释为布尔值

以下是确定尚未为布尔类型的任何值的“真相”的规则-

  • 如果值是一个数字,则精确地等于零时为false,否则为true。

  • 如果值为字符串,则如果字符串为空(具有零个字符)或字符串“ 0”,则为false,否则为true。

  • NULL类型的值始终为false。

  • 如果值是数组,则不包含其他值,则为false,否则为true。对于对象,包含值意味着具有已被分配值的成员变量。

  • 有效资源为真(尽管某些在成功时返回资源的函数将在失败时返回FALSE)。

  • 不要将double用作布尔值。

在布尔上下文中使用以下每个变量时,其真值将嵌入其名称中。

$true_num = 3 + 0.14159;
$true_str = "Tried and true"
$true_array[49] = "An array element";
$false_array = array();
$false_null = NULL;
$false_num = 999 - 999;
$false_str = "";

空值

NULL是一种只有一个值的特殊类型:NULL。要为变量提供NULL值,只需像这样分配它-

$my_var = NULL;

特殊常量NULL由约定大写,但实际上不区分大小写;您也可以输入-

$my_var = null;

被分配为NULL的变量具有以下属性-

  • 在布尔上下文中,它的评估结果为FALSE。

  • 使用IsSet()函数进行测试时,它将返回FALSE。

弦乐

它们是字符序列,例如“ PHP支持字符串操作”。以下是字符串的有效示例

$string_1 = "This is a string in double quotes";
$string_2 = 'This is a somewhat longer, singly quoted string';
$string_39 = "This string has thirty-nine characters";
$string_0 = ""; // a string with zero characters

单引号的字符串几乎按字面意义处理,而双引号的字符串用变量的值替换变量,并专门解释某些字符序列。

";
   
   $literally = "My $variable will print!";
   print($literally);
?>

这将产生以下结果-

My $variable will not print!
My name will print

字符串长度没有人为的限制-在可用内存的范围内,您应该能够制作任意长的字符串。

用双引号定界的字符串(如“ this”)由PHP通过以下两种方式进行预处理-

  • 以反斜杠(\)开头的某些字符序列将替换为特殊字符

  • 变量名(以$开头)被其值的字符串表示形式替换。

转义序列替换为-

  • \ n由字符替换
  • \ r由回车字符替换
  • \ t被制表字符替换
  • \ $替换为美元符号本身($)
  • \“替换为单引号(”)
  • \\被单个反斜杠(\)代替

此处文件

您可以使用此处文档将多行分配给单个字符串变量-


      What's For Dinner
      http://menu.example.com/ 
      Choose what to eat tonight.
   
   _XML_;
   
   echo <<

这将产生以下结果-

This uses the "here document" syntax to output
multiple lines with variable interpolation. Note
that the here document terminator must appear on a
line with just a semicolon. no extra whitespace!


What's For Dinner<title>
<link>http://menu.example.com/<link>
<description>Choose what to eat tonight.</description>

可变范围

范围可以定义为变量在声明它的程序中所具有的可用性范围。 PHP变量可以是四种范围类型之一-

变量命名

命名变量的规则是-

  • 变量名必须以字母或下划线字符开头。

  • 变量名称可以由数字,字母,下划线组成,但不能使用+,-,%,(,)之类的字符。 &等

变量没有大小限制。