PHP变量类型


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

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

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

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

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

  • 变量可以但不需要在赋值之前声明。

  • PHP中的变量没有内在类型 - 一个变量事先并不知道它是用来存储一个数字还是一串字符。

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

  • PHP在自动将类型从一个类型转换为另一个类型时做得很好。

  • PHP变量是类Perl的。

PHP总共有八种数据类型用于构建我们的变量 -

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

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

  • 布尔 - 只有两个可能的值,无论是真或假。

  • 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。默认情况下,使用所需的最小小数位数打印双打。例如,代码

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

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

它产生以下浏览器输出

2.28888 + 2.21112 = 4.5

布尔

他们只有两个可能的值,无论是真的还是假的。PHP提供了几个常量,特别是用作布尔值:TRUE和FALSE,它们可以像这样使用 -

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

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

将其他类型解释为布尔值

以下是确定任何不是布尔类型值的“真值”的规则 -

  • 如果该值是一个数字,那么如果完全等于零则为假,否则为真。

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

  • 类型NULL的值始终为false。

  • 如果该值是一个数组,那么如果它不包含其他值,则为false,否则为true。对于包含值的对象,意味着拥有一个已经赋值的成员变量。

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

  • 不要使用双精度作为布尔值。

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

$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,但实际上它是不区分大小写的; 你也可以键入 -

$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 = "My $variable will print!";
 print($literally);
?>

这将产生以下结果 -

My $variable will not print!
My name will print

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

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

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

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

转义序列替换是 -

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

这里文件

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

<?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;

 print $channel;
?>

这将产生以下结果 -

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变量可以是四种范围类型之一 -

  • 局部变量

  • 功能参数

  • 全局变量

  • 静态变量

变量命名

命名变量的规则是

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

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

变量没有大小限制。