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

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

  1. char ch, string name = "peter";
stores ‘t’
  1. let ch = name[2];
char文字必须用单引号括起来
  1. let ch = 'Z';
  2. <a name='static-types-integer-unsigned'></a>
  3. ### Integer/Unsigned Integer
  4. `integer` values are like the `integer` member in dynamic values. Values assigned to integer variables remain integer:
  5. ```zephir
  6. int a;
  7. let a = 50,
  8. 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但它们没有符号,这意味着你不能在这些变量中存储负数:

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

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

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

    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;
    抛出编译器异常

    < 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时,它永远不会改变它的类型:

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