PHP 变量类型

PHP 变量类型

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

以下是关于PHP变量的最重要的事情。

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

  • 变量的值是其最近分配的值。

  • 使用=运算符来分配变量,将变量放在左边,要评估的表达式放在右边。

  • 变量可以在分配之前声明,但并不需要声明。

  • PHP变量没有固有类型-变量不能在事先确定它们将用于存储数字还是字符串。

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

  • PHP在必要时会自动将一种类型转换为另一种类型。

  • PHP变量类似于Perl

PHP共有八种数据类型,我们用它们来构造变量-。

  • 整数 - 是没有小数点的整数,如4195。

  • 小数 - 是浮点数,如3.14159或49.1.

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

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

  • 字符串 - 是字符序列,如’PHP supports string operations.’。

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

  • 对象 - 是程序员定义的类的实例,可以将其他类型的值和特定于类的函数封装在一起。

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

前五种是简单类型,后面两种(数组和对象)是复合类型-复合类型可以封装其他任意类型的任意值,而简单类型则不能。

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

整数

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

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

整数可以用十进制(基数10)、八进制(基数8)和十六进制(基数16)的格式表示。默认为十进制,以0开头的为八进制整数,以0x开头的为十六进制整数。

对于大多数常见平台,最大整数为(231 . 1)(即2,147,483,647),最小(最负)整数为(231 . 1)(即-2,147,483,647)。

双精度浮点数

它们喜欢3.14159或49.1。默认情况下,双精度浮点数打印时会保留最少必要的小数位数。例如,以下代码:

<?php
   many = 2.2888800;many_2 = 2.2111200;
   few =many + many_2;

   print("many + many_2 =few <br>");
?>

它会产生以下的浏览器输出−

2.28888 + 2.21112 = 4.5

布尔

它们只有两个可能的值:True(真)或False(假)。PHP提供了一些专门用作布尔值的常量:TRUE和FALSE,可以像这样使用 –

if (TRUE)
   print("This will always print<br>");

else
   print("This will never print<br>");

将其他类型解释为布尔值

以下是确定任何非布尔类型的值的“真实性”的规则:

  • 如果值为数字,当且仅当值为零时为假,否则为真。

  • 如果值为字符串,当字符串为空(没有任何字符)或字符串为 “0” 时为假,否则为真。

  • 类型为 NULL 的值始终为假。

  • 如果值为数组,当数组不包含其他值时为假,否则为真。对于对象来说,包含一个值意味着具有已赋值的成员变量。

  • 有效的资源为真(尽管一些在成功时返回资源的函数在失败时会返回 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。为了将变量赋值为空值,只需像这样赋值即可−

$my_var = NULL;

特殊的常量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

单引号字符串几乎按字面意思处理,而双引号字符串则会将变量替换为其值,并特殊解释某些字符序列。

<?php
   variable = "name";literally = 'My variable will not print!';

   print(literally);
   print "<br>";

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

这将产生以下结果 −

My $variable will not print!
My name will print

在可用内存的限制下,字符串的长度没有人为限制 – 你应该能够制作任意长的字符串。

由双引号包围的字符串(如”this”)在PHP中以以下两种方式进行预处理 –

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

  • 以$符号开头的变量名将被替换为其值的字符串表示。

转义序列的替换如下 –

  • \n 将被替换为换行符
  • \r 将被替换为回车符
  • \t 将被替换为制表符
  • $ 将被替换为美元符号本身($
  • " 将被替换为一个双引号("
  • \\将被替换为一个反斜杠(\

文档

您可以使用这里的文档将多行分配给一个字符串变量 –

<?php
   channel =<<<_XML_

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

   echo <<<END
   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!


   END;

   printchannel;
?>

这将产生以下结果−

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!

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

变量作用域

作用域可以定义为一个变量在程序中的可用范围。PHP变量可以是以下四种作用域类型:

  • 局部变量

  • 函数参数

  • 全局变量

  • 静态变量

变量命名

变量命名的规则如下:

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

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

变量没有大小限制。

Python教程

Java教程

Web教程

数据库教程

图形图像教程

大数据教程

开发工具教程

计算机教程