• 静态类型
    • Boolean
      • 自动转换为true
      • 自动转换为false
      • 抛出编译器异常
  • 字符/无符号字符
    • stores ‘t’
    • char文字必须用单引号括起来
    • 自动转换为100
    • 自动转换为0
    • 自动转换为0
    • 抛出编译器异常
    • 自动转换为70
    • 自动转换为100
    • 自动转换为0
    • 自动转换为0
    • 抛出编译器异常
    • b 的数据可能丢失
  • 长值/无符号长值
    • 自动转换为100
    • 自动转换为0
    • 自动转换为0
    • 抛出编译器异常
    • 自动转换为70
    • 自动转换为100
    • 自动转换为0
    • 自动转换为0
    • 抛出编译器异常
    • b 的数据可能丢失
  • String
    • string 文字必须用双引号括起来
    • 转换为字符串“A”
    • 自动转换为””

    静态类型

    静态类型允许开发人员声明和使用 c. 变量中可用的某些变量类型, 一旦它们被声明为静态类型, 就不能更改它们的类型。 但是,它们允许编译器做更好的优化工作。 支持以下类型:

    类型说明
    array可以用作散列、映射、字典、集合、堆栈等的结构。
    boolean布尔值表示真值。 它可以是truefalse
    char能包含基本字符集的机器的最小可寻址单元。
    float/double双精度浮点型。 大小依赖于平台。
    integer带符号的整形 至少16位的大小。
    long长有符号整数类型。 至少32位。
    string字符串是一系列字符,其中字符与字节相同。
    unsigned charchar大小相同,但保证是无符号的。
    unsigned integer无符号整数 至少16位的大小。
    unsigned longlong相同,但无符号。

    Boolean

    一个boolean表示一个真假。 它可以是truefalse。 与上面详细描述的动态行为相反,静态布尔值类型仍然是布尔值 (truefalse),不管赋予它们什么值:

    1. boolean a;
    2. let a = true;
    自动转换为true
    1. let a = 100;
    自动转换为false
    1. let a = 0;
    抛出编译器异常
    1. let a = "hello";

    字符/无符号字符

    char变量是机器中能够包含基本字符集(通常是8位) 的最小可寻址单元。 char变量是机器中能够包含基本字符集(通常是8位) 的最小可寻址单元。

    1. char ch, string name = "peter";
    stores ‘t’
    1. let ch = name[2];
    char文字必须用单引号括起来
    1. let ch = 'Z';
    2. ```zephir
    3. <a name='static-types-integer-unsigned'></a>
    4. ### Integer/Unsigned Integer
    5. `integer` values are like the `integer` member in dynamic values. Values assigned to integer variables remain integer:
    6. ```zephir
    7. int a;
    8. let a = 50,
    9. a = -70;
    自动转换为100
    1. let a = 100.25;
    自动转换为0
    1. let a = null;
    自动转换为0
    1. let a = false;
    抛出编译器异常
    1. let a = "hello";

    unsigned integer变量类似于integer但它们没有符号,这意味着你不能在这些变量中存储负数:

    1. uint a;
    2. let a = 50;
    自动转换为70
    1. let a = -70;
    自动转换为100
    1. let a = 100.25;
    自动转换为0
    1. let a = null;
    自动转换为0
    1. let a = false;
    抛出编译器异常
    1. let a = "hello";

    < 0>unsigned integer</0 > 变量比标准 integer 大两倍。 将 unsigned integer</0 > 分配给标准 (有符号) <code>integer 可能会导致数据丢失:

    b 的数据可能丢失
    1. uint a, int b;
    2. let a = 2147483648,
    3. b = a;

    长值/无符号长值

    long 变量比 integer 变量大两倍, 因此它们可以存储较大的数字。 与 integer 一样, 分配给 long 变量的值将自动转换为此类型:

    1. long a;
    2. let a = 50,
    3. a = -70;
    自动转换为100
    1. let a = 100.25;
    自动转换为0
    1. let a = null;
    自动转换为0
    1. let a = false;
    抛出编译器异常
    1. let a = "hello";

    < 0>unsigned long</0 > 类似 long 但它们没有符号, 这意味着您不能将负数存储在以下类型的变量中:

    1. ulong a;
    2. let a = 50;
    自动转换为70
    1. let a = -70;
    自动转换为100
    1. let a = 100.25;
    自动转换为0
    1. let a = null;
    自动转换为0
    1. let a = false;
    抛出编译器异常
    1. let a = "hello";

    < 0>unsigned long </0 > 变量比标准 long 大两倍; 将 unsigned long</0 > 分配给标准 (有符号) <code>long 可能会导致数据丢失:

    b 的数据可能丢失
    1. ulong a, long b;
    2. let a = 4294967296,
    3. b = a;

    String

    一个string是一系列字符,其中字符与字节相同。 与PHP一样,Zephir只支持256个字符集,因此不提供本地Unicode支持。

    当一个变量被声明为string时,它永远不会改变它的类型:

    1. string a;
    2. let a = "";
    string 文字必须用双引号括起来
    1. let a = "hello";
    转换为字符串“A”
    1. let a = 'A';
    自动转换为””
    1. let a = null;