与标量变量相反
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 Baker:不,他们不是。这些是伪类型,而不是真正的数据类型。例如,callback 可以是标量也可以是复合类型 - 它只取决于它是哪种数据类型(例如字符串或数组)。【参考方案2】:
在 C 术语中,标准区分标量类型和“聚合和联合类型”。
结构和数组类型构成聚合类型。联合类型不是聚合类型。算术类型和指针类型构成标量类型。
【讨论】:
以上是关于与标量变量相反的主要内容,如果未能解决你的问题,请参考以下文章