【PHP入门】三、数据类型及比较

PHP 数据类型

PHP 变量存储不同的类型的数据,不同的数据类型可以做不一样的事情。

PHP 支持以下几种数据类型:

  1. String(字符串)
  2. Integer(整型)
  3. Float(浮点型)
  4. Boolean(布尔型)
  5. Array(数组)
  6. Object(对象)
  7. NULL(空值)
  8. Resource(资源类型)

PHP 字符串

一个字符串是一串字符的序列,就像 “Hello world!”。

你可以将任何文本放在单引号和双引号中:
实例

在这里插入图片描述

PHP 整型

整数是一个没有小数的数字。

整数规则:

  1. 整数必须至少有一个数字 (0-9)
  2. 整数不能包含逗号或空格
  3. 整数是没有小数点
  4. 整数可以是正数或负数
  5. 整型可以用三种格式来指定:十进制, 十六进制( 以 0x 为前缀)或八进制(前缀为 0)

在以下实例中我们将测试不同的数字。

PHP var_dump() 函数返回变量的数据类型和值

在这里插入图片描述

PHP 浮点型

浮点数是带小数部分的数字,或是指数形式

在以下实例中我们将测试不同的数字。 PHPvar_dump()函数返回变量的数据类型和值:

在这里插入图片描述

PHP 布尔型

布尔型可以是 TRUE 或 FALSE。
$x=true;
$y=false;

布尔型通常用于条件判断

PHP 数组

数组可以在一个变量中存储多个值

在以下实例中创建了一个数组, 然后使用 PHP var_dump() 函数返回数组的数据类型和值:
在这里插入图片描述

PHP 对象

对象数据类型也可以用于存储数据

在 PHP 中,对象必须声明

首先,你必须使用class关键字声明类对象。类是可以包含属性和方法的结构。

然后我们在类中定义数据类型,然后在实例化的类中使用数据类型:

 <!DOCTYPE html>
<html>
<body>

<?php
class Car
{
    var $color;
    function __construct($color="green") {
      $this->color = $color;
    }
    function what_color() {
      return $this->color;
    }
}

function print_vars($obj) {
   foreach (get_object_vars($obj) as $prop => $val) {
     echo "\t$prop = $val\n";
   }
}

// 实例一个对象
$herbie = new Car("white");

// 显示 herbie 属性
echo "\therbie: Properties\n";
print_vars($herbie);

?>  

</body>
</html>

输出:

herbie: Properties 
color = white 

以上实例中PHP关键字this就是指向当前对象实例的指针,不指向任何其他对象或类。

PHP NULL 值

NULL 值表示变量没有值NULL 是数据类型为 NULL 的值

NULL 值指明一个变量是否为空值。 同样可用于数据空值和NULL值的区别。

可以通过设置变量值为 NULL 来清空变量数据:
在这里插入图片描述

PHP 资源类型

PHP 资源 resource 是一种特殊变量,保存了到外部资源的一个引用

常见资源数据类型打开文件、数据库连接、图形画布区域等。

由于资源类型变量保存有为打开文件、数据库连接、图形画布区域等的特殊句柄,因此将其它类型的值转换为资源没有意义

使用 get_resource_type() 函数可以返回资源(resource)类型

get_resource_type(resource $handle): string

此函数返回一个字符串,用于表示传递给它的 resource 的类型。如果参数不是合法的 resource,将产生错误

在这里插入图片描述

PHP 类型比较

虽然 PHP 是弱类型语言,但也需要明白变量类型及它们的意义,因为我们经常需要对 PHP 变量进行比较,包含松散和严格比较。

  1. 松散比较:使用两个等号==比较,只比较,不比较类型。
  2. 严格比较:用三个等号 === 比较,除了比较,也比较类型

例如,“42” 是一个字符串而 42 是一个整数。FALSE 是一个布尔值而 “FALSE” 是一个字符串。

<?php
if(42 == "42") {
    echo '1、值相等';
}
 
echo PHP_EOL; // 换行符
 
if(42 === "42") {
    echo '2、类型相等';
} else {
    echo '3、类型不相等';
}
?>

以上实例输出结果为:

1、值相等
3、类型不相等

PHP中 比较 0、false、null

<?php
echo '0 == false: ';
var_dump(0 == false);
echo '0 === false: ';
var_dump(0 === false);
echo PHP_EOL;//换行
echo '0 == null: ';
var_dump(0 == null);
echo '0 === null: ';
var_dump(0 === null);
echo PHP_EOL;
echo 'false == null: ';
var_dump(false == null);
echo 'false === null: ';
var_dump(false === null);
echo PHP_EOL;
echo '"0" == false: ';
var_dump("0" == false);
echo '"0" === false: ';
var_dump("0" === false);
echo PHP_EOL;
echo '"0" == null: ';
var_dump("0" == null);
echo '"0" === null: ';
var_dump("0" === null);
echo PHP_EOL;
echo '"" == false: ';
var_dump("" == false);
echo '"" === false: ';
var_dump("" === false);
echo PHP_EOL;
echo '"" == null: ';
var_dump("" == null);
echo '"" === null: ';
var_dump("" === null);

以上实例输出结果为:


0 == false: bool(true)
0 === false: bool(false)

0 == null: bool(true)
0 === null: bool(false)

false == null: bool(true)
false === null: bool(false)

"0" == false: bool(true)
"0" === false: bool(false)

"0" == null: bool(false)
"0" === null: bool(false)

"" == false: bool(true)
"" === false: bool(false)

"" == null: bool(true)
"" === null: bool(false)

即:
0falsenull==“”
“0”==false
“0”!=null
“0”!=“”

其他比较

对于其他更多的比较见下表:

在这里插入图片描述
在这里插入图片描述在这里插入图片描述

PHP 常量

常量是一个简单值的标识符。该值在脚本中不能改变

一个常量由英文字母、下划线、和数字组成,但数字不能作为首字母出现。 (常量名不需要加 $ 修饰符)。

注意: 常量在整个脚本中都可以使用。

设置 PHP 常量

设置常量,使用 define() 函数,函数语法如下:

bool define ( string $name , mixed $value [, bool $case_insensitive = false ] )

该函数有三个参数:

name:必选参数,常量名称,即标志符。
value:必选参数,常量的值。
case_insensitive :可选参数,如果设置为 TRUE,该常量则大小写不敏感。默认是大小写敏感的。

以下实例我们创建一个 区分大小写的常量, 常量值为 “欢迎访问 Runoob.com”:

<?php
// 区分大小写的常量名
define("GREETING", "欢迎访问 Runoob.com");
echo GREETING;    // 输出 "欢迎访问 Runoob.com"
echo '<br>';
echo greeting;   // 输出 "greeting",但是有警告信息,表示该常量未定义
?>
<?php
// 不区分大小写的常量名
define("GREETING", "欢迎访问 Runoob.com", true);
echo greeting;  // 输出 "欢迎访问 Runoob.com"
?>

常量是全局的

常量在定义后,默认是全局变量,可以在整个运行的脚本的任何地方使用。(菜鸟教程的一个错误点!)

以下实例演示了在函数内使用常量,即便常量定义在函数外也可以正常使用常量。


<?php
echo GREETING;//在定义之前无法访问,会报错
define("GREETING", "欢迎访问 Runoob.com");
 
function myTest() {
    echo GREETING;
}
 
myTest();    // 输出 "欢迎访问 Runoob.com"
echo here;//在声明之前,无法访问,报错
function test(){
	define("here","这呢!");//定义在函数内部的常量只在函数内有效
}
echo here;//报错,出了函数体,无法访问
?>

所以,常量是在定义的该范围内才有效的。

参考资料

https://www.runoob.com/php/php-datatypes.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

LenckCuak

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值