가장 큰 차이점은 스칼라는 하나의 데이터만 저장할 수 있는 반면 배열은 여러 데이터를 저장할 수 있으며 스칼라 유형은 값으로 전달되는 반면 배열은 참조로 전달된다는 것입니다. PHP에는 부울, 문자열, 정수 및 부동 소수점의 네 가지 유형이 있습니다. 이들은 한 번에 하나의 값만 저장할 수 있으며 배열은 모든 유형의 데이터를 저장할 수 있는 데이터 모음입니다.
이 튜토리얼의 운영 환경: Windows 7 시스템, PHP 버전 8.1, DELL G3 컴퓨터
PHP 스칼라 데이터와 배열의 차이점
가장 큰 차이점: 스칼라는 하나의 데이터를 저장합니다. 배열은 여러 데이터를 저장할 수 있습니다.
기타 차이점: 스칼라 유형은 값으로 전달되는 반면 배열은 참조로 전달됩니다.
스칼라 데이터형은 데이터 구조의 가장 기본적인 단위로, 한 개의 데이터만 저장할 수 있습니다. PHP에는 네 가지 유형의 스칼라 데이터 유형이 있습니다.
유형 | 함수 |
---|---|
boolean(Boolean) | 가장 간단한 데이터 유형, 두 가지 값만 포함: true(true) / false( false) |
string(문자열) | 문자열은 연속된 문자 시퀀스입니다. |
integer(정수) | 정수 데이터 유형에는 정수 또는 음수가 될 수 있는 모든 정수가 포함됩니다. |
float (부동 소수점) | 부동 소수점 데이터 유형은 숫자를 저장하는 데에도 사용됩니다. 정수와 달리 소수를 포함합니다. |
1) 부울
부울 유형은 가장 일반적으로 사용되는 데이터 중 하나입니다. PHP에서는 참값(true) 또는 거짓값(false)을 저장합니다
// 代码: $a = true; // 真值 $b = false; // 假值
2) 문자열(string)
문자열은 연속적입니다. 문자 시퀀스는 숫자, 문자, 문자열의 각 문자는 1바이트만 차지합니다. 문자에는 다음 유형이 포함되어 있습니다. character 유형 이름은 1, 2, 3 등과 같은 다음과 같은 다음과 같습니다. , b, c 등
예: #, $, ^, & 등 | |
---|---|
在 PHP 中有 3 种定义字符串的方式: a.单引号(') $a = 'zZ爱吃菜'; 로그인 후 복사 b.双引号(") $b = "zZ爱吃菜"; 로그인 후 복사
$a = 'hello'; $b = '$a china'; $c = "$a world"; // 个人建议这样写:$c = "{$a} world"; 不容易产生歧义 echo $b; echo $c; 结果: $a china hello world 로그인 후 복사 c.定界符(<<<)
// 定义 <<<Eof …… Eof; 로그인 후 복사
$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)
$int1 = 1234; $int2 = 01234; $int3 = 0x1234; echo "十进制的结果是:{$int1}<br>"; echo "八进制的结果是:{$int2}<br>"; echo "十六进制的结果是:{$int3}<br>"; 结果 十进制的结果是:1234 八进制的结果是:668 十六进制的结果是:4660 로그인 후 복사
4)浮点型(float)
在 PHP 4.0 之前的版本 浮点型被标识为 double,也叫双精度浮点数,两者没什么区别 // 定义 $a = 1.036; $b = 2.035; $c = 3.48E2; // En代表10*n, E1 代表 * 10, $c = 348 echo $c; 结果:348 로그인 후 복사 什么是数组数组就是一组数据的集合,把一系列数据组织起来,形成一个可操作的整体。 因为 PHP 是弱数据类型的编程语言,所以 PHP 中的数组变量可以存储任意多个、任意类型的数据,并且可以实现其他强数据类型中的堆、栈、队列等数据结构的功能。 数组 array 是一组有序的变量,其中每个值被称为一个元素。每个元素由一个特殊的标识符来区分,这个标识符称为键(也称为下标)。 数组中的每个实体都包含两项,分别是键(key)和值(value)。可以通过键值来获取相应的数组元素,这些键可以是数值键,也可以是关联键。如果说变量是存储单个值的容器,那么数组就是存储多个值的容器。 PHP 数组比其他高级语言中的数组更加灵活,不但支持以数字为键名的索引数组,而且支持以字符串或字符串、数字混合为键名的关联数组。而在其他高级语言中,如 Java 或者 C++ 等语言的数组,只支持数字索引数组。 PHP 数组的结构如下图所示: 扩展知识: 在 PHP 中,标量类型数据是值传递的,而复合类型数据(对象和数组)是引用传递的。 但是复合类型数据的引用传递和用 & 符号明确指定的引用传递是有区别的,前者的引用传递是对象引用,而后者是指针引用。 在解释对象引用和指针引用之前,先让咱们 看多个 例子。 <?php echo "<pre class="brush:php;toolbar:false">"; 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 ""; ?> 로그인 후 복사 这个例子的输出结果是这样的: 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="brush:php;toolbar:false">"; 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 ""; 로그인 후 복사 运行结果也许出乎你的预料: object(SampleClass)#1 (1) { ["value"]=> int(1) } int(1) 로그인 후 복사 改动 $a->value 的值仅仅是改动 了 $a->value 的值,而改动 $b->value 的值却改动 了 $b 本身,这就是对象引用和指针引用的区别。 推荐学习:《PHP视频教程》 |
위 내용은 PHP 스칼라 데이터와 배열의 가장 큰 차이점은 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!