广告
返回顶部
首页 > 资讯 > 后端开发 > PHP编程 >php标量数据和数组有什么区别
  • 323
分享到

php标量数据和数组有什么区别

2023-06-30 15:06:01 323人浏览 泡泡鱼
摘要

这篇“PHP标量数据和数组有什么区别”文章的知识点大部分人都不太理解,所以小编给大家总结了以下内容,内容详细,步骤清晰,具有一定的借鉴价值,希望大家阅读完这篇文章能有所收获,下面我们一起来看看这篇“php标量数据和数组有什么区别”文章吧。最

这篇“PHP标量数据和数组有什么区别”文章的知识点大部分人都不太理解,所以小编给大家总结了以下内容,内容详细,步骤清晰,具有一定的借鉴价值,希望大家阅读完这篇文章能有所收获,下面我们一起来看看这篇“php标量数据和数组有什么区别”文章吧。

最大区别是:一个标量只能存放一个数据,而数组可以存放多个数据;且标量类型是值传递,而数组是引用传递。在PHP中,标量数据有四种类型:布尔型、字符串、整型、浮点型,它们一次只能存一个值;而数组是一组数据的集合,可存储任意多个、任意类型的数据。

php标量数据和数组有什么区别

教程操作环境:windows7系统、PHP7.1版、DELL G3电脑

php标量数据和数组的区别

  • 最大区别:一个标量只能存放一个数据,而数组可以存放多个数据。

  • 其他区别:标量类型是值传递,而数组是引用传递。

什么是标量数据

标量数据类型是数据结构最基础的单元,只能存储一个数据。在 PHP 中的标量数据类型分为四种:

类型功能
boolean(布尔型)最简单的数据类型,只有两个值:true(真) / false(假)
string(字符串)字符串是连续的字符序列
integer(整型)整型数据类型包含所有的整数,其可以是整数也可以是负数
float(浮点型)浮点型数据类型也是用来存储数字,与整型不同它包含小数

1)布尔型(boolean)

布尔型是 PHP 中较为常用的数据类型之一,它保存一个真值(true) 或 假值(false)

// 代码:$a = true; // 真值$b = false; // 假值

2)字符串(string)

字符串是连续的字符序列,由数字、字母、符号组成,字符串的每个字符只占一个字节。字符包含以下几种类型

字符类型名内容
数字类型如:1、2、3等
字母类型如:a、b、c等
特殊类型如:#、$、^、&等
不可见类型如:\n(换行符)、\r(回车)、\t(tab字符)等

不可见字符是比较特殊的字符用于控制字符串格式输出,在浏览器上不可见,只是能看到字符串的输出结果。

在 PHP 中有 3 种定义字符串的方式:

a.单引号(')

$a = 'zZ爱吃菜';

b.双引号(")

$b = "zZ爱吃菜";

单引号与双引号的区别:双引号所包含的变量会自动被替换成实际值,而单引号包含的变量则按普通类型输出。例如:

$a = 'hello';$b = '$a china';$c = "$a world"; // 个人建议这样写:$c = "{$a} world"; 不容易产生歧义echo $b;echo $c;结果:$a chinahello world

c.定界符(<<<)

如果用传统的输出方法——按字符串输出的话,肯定要有大量的转义符来对字符串中的引号等特殊字符进行转义,以免出现语法错误。如果是一两处还可以容忍,但是要是一个完整的html文本或者是一个200行的js我想是谁都会崩溃的。这就是PHP为什么要引入一个定界符的原因——至少一大部分原因是这样的。
1.PHP 定界符的作用就是按照原样,包括换行格式什么的,输出在其内部的东西;
2.PHP 定界符中字符串内容不需要转义

// 定义<<<Eof …… Eof;

不需要对付出转义的好处:直接输出你想要的 html 字符串

$name = 'kitty';echo <<<Eof<table height="20"><tr><td>{$name}<br/><script>var p='hello world';document.writeln(p);</script></td></tr></table><select><option>aaaaa</option><option>aaaaa</option><option>aaaaa</option></select>Eof;

注意:使用定界符输出字符串,结束标识符必须单独另起一行,并且不允许有空格。

3)整型(integer)

整型数据类型只能包含整数,在 32 位的操作系统中,有效范围是: -2147483648(2的31次方) ~ 217483647 (2的31次方-1)。整型可以使用十进制、八进制和十六进制表示,如:八进制(数字前面必须加0)、十六进制(数字前面必须加0x)

$int1 = 1234;$int2 = 01234;$int3 = 0x1234;echo "十进制的结果是:{$int1}<br>";echo "八进制的结果是:{$int2}<br>";echo "十六进制的结果是:{$int3}<br>";结果十进制的结果是:1234八进制的结果是:668十六进制的结果是:4660

注意:如果给定的数值超出了 int 型所能表示的最大范围,将会被当作 float 型处理,这种情况叫做:整型溢出。表达式最后的运算结果超出 int 范围,也会返回 float 型

4)浮点型(float)

浮点型数据类型可以用来存储整数,也可以保存小数。它提供的精度比整数大得多。 在32系统中有效范围: 1.7E-308 ~ 1.7E+308

在 PHP 4.0 之前的版本 浮点型被标识为 double,也叫双精度浮点数,两者没什么区别

// 定义$a = 1.036;$b = 2.035;$c = 3.48E2; // En代表10*n, E1 代表 * 10, $c = 348echo $c;结果:348

什么是数组

数组就是一组数据的集合,把一系列数据组织起来,形成一个可操作的整体。

因为 PHP 是弱数据类型的编程语言,所以 PHP 中的数组变量可以存储任意多个、任意类型的数据,并且可以实现其他强数据类型中的堆、栈、队列等数据结构的功能。

数组 array 是一组有序的变量,其中每个值被称为一个元素。每个元素由一个特殊的标识符来区分,这个标识符称为键(也称为下标)。

数组中的每个实体都包含两项,分别是键(key)和值(value)。可以通过键值来获取相应的数组元素,这些键可以是数值键,也可以是关联键。如果说变量是存储单个值的容器,那么数组就是存储多个值的容器。

PHP 数组比其他高级语言中的数组更加灵活,不但支持以数字为键名的索引数组,而且支持以字符串或字符串、数字混合为键名的关联数组。而在其他高级语言中,如 Java 或者 c++ 等语言的数组,只支持数字索引数组。

PHP 数组的结构如下图所示:

php标量数据和数组有什么区别

扩展知识:

在 PHP 中,标量类型数据是值传递的,而复合类型数据(对象和数组)是引用传递的。

但是复合类型数据的引用传递和用 & 符号明确指定的引用传递是有区别的,前者的引用传递是对象引用,而后者是指针引用。

在解释对象引用和指针引用之前,先让咱们 看多个 例子。

<?phpecho "<pre>";class SampleClass {var $value;}$a = new SampleClass();$a->value = $a;$b = new SampleClass();$b->value = &$b;echo serialize($a);echo "\n";echo serialize($b);echo "\n";echo "</pre>";?>

这个例子的输出结果是这样的:

O:11:"SampleClass":1:{s:5:"value";r:1;}O:11:"SampleClass":1:{s:5:"value";R:1;}

大家 会发觉 ,这里变量 $a 的 value 字段的值被序列化成了 r:1,而 $b 的 value 字段的值被序列化成了 R:1。

但是对象引用和指针引用到底有什么区别呢?

看下面这个例子:

echo "<pre>";class SampleClass {var $value;}$a = new SampleClass();$a->value = $a;$b = new SampleClass();$b->value = &$b;$a->value = 1;$b->value = 1;var_dump($a);var_dump($b);echo "</pre>";

运行结果也许出乎你的预料:

object(SampleClass)#1 (1) {   ["value"]=>   int(1)}int(1)

改动 $a->value 的值仅仅是改动 了 $a->value 的值,而改动 $b->value 的值却改动 了 $b 本身,这就是对象引用和指针引用的区别。

以上就是关于“php标量数据和数组有什么区别”这篇文章的内容,相信大家都有了一定的了解,希望小编分享的内容对大家有帮助,若想了解更多相关的知识内容,请关注编程网PHP编程频道。

--结束END--

本文标题: php标量数据和数组有什么区别

本文链接: https://www.lsjlt.com/news/329771.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

本篇文章演示代码以及资料文档资料下载

下载Word文档到电脑,方便收藏和打印~

下载Word文档
猜你喜欢
  • php标量数据和数组有什么区别
    这篇“php标量数据和数组有什么区别”文章的知识点大部分人都不太理解,所以小编给大家总结了以下内容,内容详细,步骤清晰,具有一定的借鉴价值,希望大家阅读完这篇文章能有所收获,下面我们一起来看看这篇“php标量数据和数组有什么区别”文章吧。最...
    99+
    2023-06-30
  • php数组指针和指针数组有什么区别
    本篇内容主要讲解“php数组指针和指针数组有什么区别”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“php数组指针和指针数组有什么区别”吧!区别指针数组本身是一个数组,数组的元素都是指针,即数组存...
    99+
    2023-06-20
  • php关联数组和索引数组有什么区别
    关联数组和索引数组是PHP中两种常见的数组类型,它们的区别如下:1. 索引数组:索引数组使用数字作为数组的键,键的顺序与元素的插入顺序相对应。例如,$arr = array("apple", "banana", "orange")就是一...
    99+
    2023-08-09
    php
  • PHP索引数组和对象数组有什么区别?
    PHP是一种流行的编程语言,它支持许多不同的数据类型。其中两种常见的数据类型是索引数组和对象数组。这两种数组虽然都是数组,但它们之间有很大的区别。在本文中,我们将讨论PHP索引数组和对象数组的区别,并提供一些演示代码来帮助您更好地理解它们之...
    99+
    2023-08-09
    索引 对象 javascript
  • php中链表和数组有什么区别
    在PHP中,链表和数组都是实现数据结构的方式。虽然两者都可以用来存储和操作数据,但是它们在底层实现和应用场景方面有明显的区别。数组是一种线性结构,由一组相同类型的元素组成,每个元素都有唯一的下标或者键值。在PHP中,数组可以使用索引或者关联...
    99+
    2023-05-14
  • php中关联数组和索引数组有什么区别
    在PHP中,数组是一系列数据的集合,形成一个可操作的整体。每一个数据是一个元素,元素包含键名和键值。索引数组和关联数组的区别是由键名区分的一、索引数组索引数组的下标(键名)由数字组成,默认从 0 开始,每个数字对应一个数组元素在数组中的位置...
    99+
    2020-01-22
    PHP 索引数组 关联数组
  • PHP数组和Bash数组的区别是什么?
    PHP和Bash都是常见的编程语言,它们都支持数组。但是它们的数组有哪些区别呢?本文将深入探讨PHP数组和Bash数组的区别,并且提供一些代码演示来帮助你更好地理解。 一、PHP数组 PHP是一种服务器端脚本语言,它是一种用于开发Web应用...
    99+
    2023-10-29
    数组 bash windows
  • swift元组和数组有什么区别
    Swift元组和数组在Swift语言中都用来存储多个值,但它们有以下区别:1. 类型:数组(Array)是同种类型的元素的有序集合,...
    99+
    2023-10-19
    swift
  • JavaScript中伪数组和数组有什么区别
    JavaScript中伪数组和数组有什么区别?相信很多没有经验的人对此束手无策,为此本文总结了问题出现的原因和解决方法,通过这篇文章希望你能解决这个问题。JavaScript的作用是什么1、能够嵌入动态文本于HTML页面。2、对浏览器事件做...
    99+
    2023-06-14
  • 数据类型和数组在PHP和Apache服务器中有什么区别?
    在PHP和Apache服务器中,数据类型和数组是非常重要的概念,它们在程序开发中扮演着至关重要的角色。虽然它们都是用来存储数据的,但是它们之间存在着一些区别。本文将深入探讨数据类型和数组在PHP和Apache服务器中的区别。 一、数据类型在...
    99+
    2023-09-15
    apache 数组 数据类型
  • php和java的数据库有什么区别
    本教程操作环境:windows7系统、PHP7.1&&java8版、DELL G3电脑php是什么?PHP即“超文本预处理器”,是一种通用开源脚本语言。PHP是在服务器端执行的脚本语言,与C语言类似,是常用的网站编程语言。P...
    99+
    2016-09-14
    php java 数据库
  • Java数组和JavaScript函数有什么区别?
    Java数组和JavaScript函数是两种不同的编程概念,它们之间存在着很大的区别。在本文中,我们将探讨Java数组和JavaScript函数的区别,并演示一些代码示例。 Java数组是一种存储固定数量元素的数据结构。数组可以包含不同类型...
    99+
    2023-10-25
    数组 javascript 函数
  • golang数组和切片有什么区别
    在Go语言中,数组和切片都是用来存储一组元素的数据结构,但它们有一些重要的区别。1. 固定大小 vs 动态大小:- 数组的大小在创建...
    99+
    2023-09-27
    golang
  • 大数据和数据分析有什么区别
    1、定义不同 大数据是指无法一定时间范围内用常规软件工具进行捕捉、管理和处理的数据集合,是需要新处理模式才能具有更强的决策力、洞察发现力和流程优化能力的海量、高增长率和多样化的信息资产。 数据分析是指用适当的统计分析方法对收集来...
    99+
    2023-10-29
    和数 有什么区别 据分析
  • delete和Vue.delete删除数组有什么区别
    今天小编给大家分享一下delete和Vue.delete删除数组有什么区别的相关知识点,内容详细,逻辑清晰,相信大部分人都还太了解这方面的知识,所以分享这篇文章给大家参考一下,希望大家阅读完这篇文章后有所收...
    99+
    2022-10-19
  • python中数组和列表有什么区别
    在Python中,数组和列表都是用来存储多个值的数据结构。但是它们在一些方面有一些区别。1. 数据类型:数组在Python中是由Nu...
    99+
    2023-08-09
    python
  • PHP 函数和 NumPy/Numpy 有什么区别?
    PHP 和 NumPy/Numpy 都是编程语言中的两个重要的工具,它们都有着各自的优点和特点,用途也不尽相同。在本文中,我们将会深入探讨一下 PHP 函数和 NumPy/Numpy 之间的区别。 一、PHP 函数的概念 PHP 函数是一...
    99+
    2023-09-17
    函数 numpy numy
  • PHP函数和方法有什么区别
    今天小编给大家分享一下PHP函数和方法有什么区别的相关知识点,内容详细,逻辑清晰,相信大部分人都还太了解这方面的知识,所以分享这篇文章给大家参考一下,希望大家阅读完这篇文章后有所收获,下面我们一起来了解一下吧。PHP函数是一段可重复使用的代...
    99+
    2023-07-05
  • pg数据库和mysql数据库有什么区别
    pg数据库和mysql数据库有什么区别?这个问题可能是我们日常学习或工作经常见到的。希望通过这个问题能让你收获颇深。下面是小编给大家带来的参考内容,让我们一起来看看吧!区别:1、MySQL倾向于使用者的角度...
    99+
    2022-10-18
  • c语言指针数组和数组指针有什么区别
    C语言中,指针数组和数组指针是两种不同的概念。 指针数组(Pointer Array):指针数组是一个数组,其中的元素都是指针类型...
    99+
    2023-10-27
    c语言
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作