与标量变量相反

Posted

技术标签:

【中文标题】与标量变量相反【英文标题】:The opposite of scalar variables 【发布时间】:2015-02-24 02:17:34 【问题描述】:

php 和 C 使用术语“标量变量”。

标量变量是那些包含整数、浮点数、字符串或布尔值的变量。类型数组、对象和资源不是标量。

有没有描述非标量变量的术语?

【问题讨论】:

你的意思是非标量吗? 我相信是非标量。尽管在 C afaik 中没有使用术语“标量”,但我们将这些变量称为原始变量或原始类型。 在C语言中,有结构体、数组等聚合类型。 php.net/manual/en/language.types.intro.php 标量类型和 复合 类型。注意在 PHP 中,字符串也被认为是一个标量。 C++ 使用术语基本类型复合类型。无法像在 C++ 标准中看到的那样容易地看到 C 标准文档中使用了哪些术语。 【参考方案1】:

就数据类型而言(对于 PHP,而不是 C):

标量类型通常表示原始数据类型。接下来,您有复合类型(数组、对象)和其他类型(资源句柄)(这种数据类型的分类依赖于the ones from Wikipedia)。

在 PHP 中,NULL 不是标量的一部分。

这与Types Introduction in the PHP Manual 中给出的组一致:

标量类型:boolean、integer、float、string 复合类型:array, object 特殊类型:resource, NULL

并且来自is_scalar function的PHP手册条目:

标量类型是那些包含integer、float、string 或boolean 的类型。 array、object 和 resource 类型不是标量。

【讨论】:

更不用说function/callback 现在实际上也是一种数据类型,并且必须属于special 的类别 @Mark Ba​​ker:不,他们不是。这些是伪类型,而不是真正的数据类型。例如,callback 可以是标量也可以是复合类型 - 它只取决于它是哪种数据类型(例如字符串或数组)。【参考方案2】:

在 C 术语中,标准区分标量类型和“聚合和联合类型”。

结构和数组类型构成聚合类型。联合类型不是聚合类型。算术类型和指针类型构成标量类型。

【讨论】:

以上是关于与标量变量相反的主要内容,如果未能解决你的问题,请参考以下文章

不明白错误信息:必须声明标量变量“@Username”。

Perl 变量:标量变量

表变量和错误“必须声明标量变量”

perl 第五弹 变量 I

Java线程中的同步

PL/SQL oracle 中的标量变量和复合变量