php教程 php手册 速战速决 (2) - PHP: 数据类型 bool, int, float, string, object, array - webabcd

速战速决 (2) - PHP: 数据类型 bool, int, float, string, object, array - webabcd

May 20, 2016 am 10:14 AM

[源码下载]


速战速决 (2) - PHP: 数据类型 bool, int, float, string, object, array



作者:webabcd


介绍
速战速决 之 PHP

  • 数据类型 bool, int, float, string, object, array



示例
1、数据类型: bool, int, float, string, object
basic/type1.php

<span style="color: #000000;">php
</span><span style="color: #008000;">/*</span><span style="color: #008000;">*
 * 数据类型: bool, int, float, string, object
 </span><span style="color: #008000;">*/</span>

<span style="color: #008000;">//</span><span style="color: #008000;"> 布尔类型(true, false 不分大小写)</span>
<span style="color: #800080;">$b</span> = <span style="color: #0000ff;">true</span><span style="color: #000000;">;
</span><span style="color: #0000ff;">if</span> (<span style="color: #800080;">$b</span><span style="color: #000000;">)
{
    </span><span style="color: #0000ff;">echo</span> "true"<span style="color: #000000;">;
    </span><span style="color: #0000ff;">echo</span> "<br>"<span style="color: #000000;">;
}
</span><span style="color: #800080;">$b</span> = <span style="color: #0000ff;">false</span><span style="color: #000000;">;
</span><span style="color: #0000ff;">if</span> (!<span style="color: #800080;">$b</span><span style="color: #000000;">)
{
    </span><span style="color: #0000ff;">echo</span> "false"<span style="color: #000000;">;
    </span><span style="color: #0000ff;">echo</span> "<br>"<span style="color: #000000;">;
}


</span><span style="color: #008000;">//</span><span style="color: #008000;"> 整型</span>
<span style="color: #800080;">$i</span> = 100<span style="color: #000000;">;
</span><span style="color: #0000ff;">echo</span> <span style="color: #800080;">$i</span><span style="color: #000000;">;
</span><span style="color: #0000ff;">echo</span> "<br>"<span style="color: #000000;">;
</span><span style="color: #008000;">//</span><span style="color: #008000;"> 八进制(以 0 开头)</span>
<span style="color: #800080;">$i</span> = 0144; <span style="color: #008000;">//</span><span style="color: #008000;"> 等于十进制的 100</span>
<span style="color: #0000ff;">echo</span> <span style="color: #800080;">$i</span><span style="color: #000000;">;
</span><span style="color: #0000ff;">echo</span> "<br>"<span style="color: #000000;">;
</span><span style="color: #008000;">//</span><span style="color: #008000;"> 十六进制(以 0x 开头)</span>
<span style="color: #800080;">$i</span> = 0x64; <span style="color: #008000;">//</span><span style="color: #008000;"> 等于十进制的 100</span>
<span style="color: #0000ff;">echo</span> <span style="color: #800080;">$i</span><span style="color: #000000;">;
</span><span style="color: #0000ff;">echo</span> "<br>"<span style="color: #000000;">;


</span><span style="color: #008000;">//</span><span style="color: #008000;"> 浮点型</span>
<span style="color: #800080;">$f</span> = 3.14<span style="color: #000000;">;
</span><span style="color: #0000ff;">echo</span> <span style="color: #800080;">$f</span><span style="color: #000000;">;
</span><span style="color: #0000ff;">echo</span> "<br>"<span style="color: #000000;">;
</span><span style="color: #0000ff;">if</span> (!<span style="color: #008080;">is_nan</span>(<span style="color: #800080;">$f</span>)) <span style="color: #008000;">//</span><span style="color: #008000;"> 通过 is_nan 函数来判断一个变量的值是否不是数字类型</span>
<span style="color: #000000;">{
    </span><span style="color: #0000ff;">echo</span> <span style="color: #800080;">$f</span><span style="color: #000000;">;
    </span><span style="color: #0000ff;">echo</span> "<br>"<span style="color: #000000;">;
}
</span><span style="color: #0000ff;">if</span> (<span style="color: #800080;">$f</span> == 1.11 + 2.03) <span style="color: #008000;">//</span><span style="color: #008000;"> false</span>
<span style="color: #000000;">{
    </span><span style="color: #0000ff;">echo</span> "注意不要用 == 来比较两个浮点型变量"<span style="color: #000000;">;
    </span><span style="color: #0000ff;">echo</span> "<br>"<span style="color: #000000;">;
}
</span><span style="color: #0000ff;">if</span> (<span style="color: #008080;">bccomp</span>(<span style="color: #800080;">$f</span>, 1.11 + 2.03, 2) == 0) <span style="color: #008000;">//</span><span style="color: #008000;"> true</span>
<span style="color: #000000;">{
    </span><span style="color: #0000ff;">echo</span> "请用 bccomp 函数来比较两个浮点型变量"<span style="color: #000000;">;
    </span><span style="color: #0000ff;">echo</span> "<br>"<span style="color: #000000;">;
}


</span><span style="color: #008000;">//</span><span style="color: #008000;"> 字符串类型</span>
<span style="color: #800080;">$s</span> = 'abc$i\$'<span style="color: #000000;">;
</span><span style="color: #0000ff;">echo</span> <span style="color: #800080;">$s</span>; <span style="color: #008000;">//</span><span style="color: #008000;"> output: abc$i\$</span>
<span style="color: #0000ff;">echo</span> "<br>"<span style="color: #000000;">;
</span><span style="color: #800080;">$s</span> = "abc<span style="color: #800080;">$i</span>\$"<span style="color: #000000;">;
</span><span style="color: #0000ff;">echo</span> <span style="color: #800080;">$s</span>; <span style="color: #008000;">//</span><span style="color: #008000;"> output: abc100$</span>
<span style="color: #0000ff;">echo</span> "<br>"<span style="color: #000000;">;
</span><span style="color: #0000ff;">if</span> (<span style="color: #008080;">is_string</span>(<span style="color: #800080;">$s</span>)) <span style="color: #008000;">//</span><span style="color: #008000;"> 通过 is_string 函数来判断一个变量的值是否是字符串类型</span>
<span style="color: #000000;">{
    </span><span style="color: #0000ff;">echo</span> "<span style="color: #800080;">$s</span> 是字符串"<span style="color: #000000;">;
    </span><span style="color: #0000ff;">echo</span> "<br>"<span style="color: #000000;">;
}

</span><span style="color: #008000;">//</span><span style="color: #008000;"> 字符串的格式化输出</span>
<span style="color: #800080;">$s</span> = <span style="color: #008080;">sprintf</span>("string: %s, int: %d", "xyz", 100<span style="color: #000000;">);
</span><span style="color: #0000ff;">echo</span> <span style="color: #800080;">$s</span><span style="color: #000000;">;
</span><span style="color: #0000ff;">echo</span> "<br>"<span style="color: #000000;">;

</span><span style="color: #008000;">//</span><span style="color: #008000;"> heredoc 结构(通过“
<span style="color: #800080;">$h</span> = XXX
</span><span style="color: #0000ff;">echo</span> <span style="color: #800080;">$s</span><span style="color: #000000;">;
\\
XXX;
</span><span style="color: #0000ff;">echo</span> <span style="color: #800080;">$h</span><span style="color: #000000;">;
</span><span style="color: #0000ff;">echo</span> "<br>"<span style="color: #000000;">;
</span><span style="color: #008000;">/*</span><span style="color: #008000;">
上面 echo $h; 输出的内容如下:
echo abc100$;
\
</span><span style="color: #008000;">*/</span>

<span style="color: #008000;">//</span><span style="color: #008000;"> nowdoc 结构(通过“
<span style="color: #800080;">$n</span> = echo</span> <span style="color: #800080;">$s</span><span style="color: #000000;">;
\\
YYY;
</span><span style="color: #0000ff;">echo</span> <span style="color: #800080;">$n</span><span style="color: #000000;">;
</span><span style="color: #0000ff;">echo</span> "<br>"<span style="color: #000000;">;
</span><span style="color: #008000;">/*</span><span style="color: #008000;">
上面 echo $n; 输出的内容如下:
echo $s;
\\
</span><span style="color: #008000;">*/</span>


<span style="color: #008000;">//</span><span style="color: #008000;"> object 类型</span>
<span style="color: #800080;">$obj</span> = (<span style="color: #0000ff;">object</span>)"sss"; <span style="color: #008000;">//</span><span style="color: #008000;"> 将一个变量转换为对象时,系统会创建一个内置类,该类的 scalar 属性即为原变量的值</span>
<span style="color: #0000ff;">echo</span> <span style="color: #800080;">$obj</span>-&gt;scalar; <span style="color: #008000;">//</span><span style="color: #008000;"> output: sss</span>
<span style="color: #0000ff;">echo</span> "<br>"<span style="color: #000000;">;


</span><span style="color: #008000;">//</span><span style="color: #008000;"> NULL 类型(NULL 不分大小写)</span>
<span style="color: #800080;">$n1</span>; <span style="color: #008000;">//</span><span style="color: #008000;"> 未赋值则为 null</span>
<span style="color: #800080;">$n2</span> = <span style="color: #0000ff;">NULL</span><span style="color: #000000;">;
</span><span style="color: #0000ff;">if</span> (<span style="color: #800080;">$n1</span> == <span style="color: #0000ff;">null</span><span style="color: #000000;">)
{
    </span><span style="color: #0000ff;">echo</span> "null"; <span style="color: #008000;">//</span><span style="color: #008000;"> output: null</span>
    <span style="color: #0000ff;">echo</span> "<br>"<span style="color: #000000;">;
}
</span><span style="color: #0000ff;">if</span> (<span style="color: #800080;">$n2</span> == <span style="color: #0000ff;">null</span><span style="color: #000000;">)
{
    </span><span style="color: #0000ff;">echo</span> "null"; <span style="color: #008000;">//</span><span style="color: #008000;"> output: null</span>
    <span style="color: #0000ff;">echo</span> "<br>"<span style="color: #000000;">;
}


</span><span style="color: #008000;">/*</span><span style="color: #008000;">
 * 数据类型间的显示转换
 * (int)
 * (bool)
 * (float)
 * (string)
 * (array)
 * (object)
 </span><span style="color: #008000;">*/</span>

<span style="color: #008000;">//</span><span style="color: #008000;"> 数据类型间的隐式转换</span>
<span style="color: #800080;">$v</span> = "1"; <span style="color: #008000;">//</span><span style="color: #008000;"> 字符串类型</span>
<span style="color: #0000ff;">echo</span> <span style="color: #800080;">$v</span>; <span style="color: #008000;">//</span><span style="color: #008000;"> output: 1</span>
<span style="color: #0000ff;">echo</span> "<br>"<span style="color: #000000;">;
</span><span style="color: #800080;">$v</span> = 2 + <span style="color: #800080;">$v</span>; <span style="color: #008000;">//</span><span style="color: #008000;"> 隐式转换为整型</span>
<span style="color: #0000ff;">echo</span> <span style="color: #800080;">$v</span>; <span style="color: #008000;">//</span><span style="color: #008000;"> output: 3</span>
<span style="color: #0000ff;">echo</span> "<br>";
로그인 후 복사


2、数据类型: array
basic/type2.php

<span style="color: #000000;">php
</span><span style="color: #008000;">/*</span><span style="color: #008000;">*
 * 数据类型: array
 </span><span style="color: #008000;">*/</span>

<span style="color: #008000;">//</span><span style="color: #008000;"> 定义数组(数组中的 key 索引为从 0 开始的递增的整型)</span>
<span style="color: #800080;">$array0</span> = <span style="color: #0000ff;">array</span>(1, 2, 3, 4<span style="color: #000000;">);
</span><span style="color: #008080;">var_dump</span>(<span style="color: #800080;">$array0</span><span style="color: #000000;">);

</span><span style="color: #008000;">//</span><span style="color: #008000;"> 定义数组</span>
<span style="color: #800080;">$array1</span> = <span style="color: #0000ff;">array</span><span style="color: #000000;">
(
    </span>"a" =&gt; "abx",
    "x" =&gt; "xyz",<span style="color: #000000;">
);
</span><span style="color: #008080;">var_dump</span>(<span style="color: #800080;">$array1</span><span style="color: #000000;">);

</span><span style="color: #008000;">//</span><span style="color: #008000;"> 在 php 5.4 之后可以通过 [] 定义数组</span>
<span style="color: #800080;">$array2</span> =<span style="color: #000000;">
[
    </span>"a" =&gt; "abx",
    "x" =&gt; "xyz",<span style="color: #000000;">
];
</span><span style="color: #008080;">var_dump</span>(<span style="color: #800080;">$array2</span><span style="color: #000000;">);

</span><span style="color: #008000;">//</span><span style="color: #008000;"> key 是 integer 类型或 string 类型,如果是其他类型的话会被自动转换为 integer 类型或 string 类型
// key 可以 integer 和 string 两种类型混合存在
// key 为可选项,如果未指定的话,则 PHP 将自动使用之前用过的最大 integer 键名加上 1 作为新的键名,如果没有则从 0 开始</span>
<span style="color: #800080;">$array3</span> = <span style="color: #0000ff;">array</span><span style="color: #000000;">
(
    </span>"a" =&gt; "abc",
    "x" =&gt; "xyz",
    100 =&gt; "111",
    100.99 =&gt; "222",
    1 =&gt; "333",
    <span style="color: #0000ff;">true</span> =&gt; "444",
    "a",
    "b",
    "c"<span style="color: #000000;">
);
</span><span style="color: #008080;">var_dump</span>(<span style="color: #800080;">$array3</span><span style="color: #000000;">);
</span><span style="color: #008000;">/*</span><span style="color: #008000;">
 * 上面数组定义的结果如下:
 * 'a' =&gt; string 'abc'
 * 'x' =&gt; string 'xyz'
 * 100 =&gt; string '222'
 * 1 =&gt; string '444'
 * 101 =&gt; string 'a'
 * 102 =&gt; string 'b'
 * 103 =&gt; string 'c'
 </span><span style="color: #008000;">*/</span>

<span style="color: #008000;">//</span><span style="color: #008000;"> 通过 [] 指定数组字符串类型的 key 并获取其值</span>
<span style="color: #0000ff;">echo</span> <span style="color: #800080;">$array3</span>["a"]; <span style="color: #008000;">//</span><span style="color: #008000;"> output: abc</span>
<span style="color: #0000ff;">echo</span> "<br>"<span style="color: #000000;">;
</span><span style="color: #008000;">//</span><span style="color: #008000;"> 通过 {} 指定数组字符串类型的 key 并获取其值</span>
<span style="color: #0000ff;">echo</span> <span style="color: #800080;">$array3</span>{"a"}; <span style="color: #008000;">//</span><span style="color: #008000;"> output: abc</span>
<span style="color: #0000ff;">echo</span> "<br>"<span style="color: #000000;">;
</span><span style="color: #008000;">//</span><span style="color: #008000;"> 通过 [] 指定数组整型类型的 key 并获取其值(注:这里不是指位置 100 的元素,而是指 key 为 100 的元素)</span>
<span style="color: #0000ff;">echo</span> <span style="color: #800080;">$array3</span>[100]; <span style="color: #008000;">//</span><span style="color: #008000;"> output: 222</span>
<span style="color: #0000ff;">echo</span> "<br>"<span style="color: #000000;">;
</span><span style="color: #008000;">//</span><span style="color: #008000;"> 通过 {} 指定数组整型类型的 key 并获取其值(注:这里不是指位置 100 的元素,而是指 key 为 100 的元素)</span>
<span style="color: #0000ff;">echo</span> <span style="color: #800080;">$array3</span>{100}; <span style="color: #008000;">//</span><span style="color: #008000;"> output: 222</span>
<span style="color: #0000ff;">echo</span> "<br>"<span style="color: #000000;">;

</span><span style="color: #008000;">//</span><span style="color: #008000;"> 修改数组中指定 key 的值</span>
<span style="color: #800080;">$array3</span>["a"] = "aaa"<span style="color: #000000;">;
</span><span style="color: #0000ff;">echo</span> <span style="color: #800080;">$array3</span>["a"]; <span style="color: #008000;">//</span><span style="color: #008000;"> output: aaa</span>
<span style="color: #0000ff;">echo</span> "<br>"<span style="color: #000000;">;
</span><span style="color: #008000;">//</span><span style="color: #008000;"> 通过 key 和 value 为数组添加新元素(在数据最后一个元素的后面添加)</span>
<span style="color: #800080;">$array3</span>[50] = "d"<span style="color: #000000;">;
</span><span style="color: #0000ff;">echo</span> <span style="color: #800080;">$array3</span>[50]; <span style="color: #008000;">//</span><span style="color: #008000;"> output: d</span>
<span style="color: #0000ff;">echo</span> "<br>"<span style="color: #000000;">;
</span><span style="color: #008000;">//</span><span style="color: #008000;"> 仅通过 value 为数组添加新元素(在数据最后一个元素的后面添加),key 值将自动使用之前用过的最大 integer 键名加上 1 作为新的键名,如果没有则从 0 开始</span>
<span style="color: #800080;">$array3</span>[] = "e"<span style="color: #000000;">;
</span><span style="color: #0000ff;">echo</span> <span style="color: #800080;">$array3</span>[104]; <span style="color: #008000;">//</span><span style="color: #008000;"> output: e</span>
<span style="color: #0000ff;">echo</span> "<br>"<span style="color: #000000;">;


</span><span style="color: #008000;">//</span><span style="color: #008000;"> 遍历数组</span>
<span style="color: #0000ff;">foreach</span> (<span style="color: #800080;">$array3</span> <span style="color: #0000ff;">as</span> <span style="color: #800080;">$i</span> =&gt; <span style="color: #800080;">$value</span><span style="color: #000000;">)
{
    </span><span style="color: #008000;">//</span><span style="color: #008000;"> 销毁数组中的指定元素</span>
    <span style="color: #0000ff;">unset</span>(<span style="color: #800080;">$array3</span>[<span style="color: #800080;">$i</span><span style="color: #000000;">]);
}
</span><span style="color: #008080;">var_dump</span>(<span style="color: #800080;">$array3</span><span style="color: #000000;">);
</span><span style="color: #008000;">//</span><span style="color: #008000;"> 之前通过 unset 销毁了每个数组元素,但是数组内部的 key 索引不会被破坏,如下例,其 key 值会由系统分配为 105</span>
<span style="color: #800080;">$array3</span>[] = "xxx"<span style="color: #000000;">;
</span><span style="color: #0000ff;">echo</span> <span style="color: #800080;">$array3</span>[105]; <span style="color: #008000;">//</span><span style="color: #008000;"> output: xxx</span>
<span style="color: #0000ff;">echo</span> "<br>"<span style="color: #000000;">;

</span><span style="color: #008000;">//</span><span style="color: #008000;"> 销毁指定的变量,如果是销毁数组的话,则数组内部的 key 索引也会被破坏</span>
<span style="color: #0000ff;">unset</span>(<span style="color: #800080;">$array3</span><span style="color: #000000;">);
</span><span style="color: #008080;">var_dump</span>(<span style="color: #800080;">$array3</span><span style="color: #000000;">);
</span><span style="color: #008000;">//</span><span style="color: #008000;"> 由于之前数组内部的 key 索引被破坏了,所以下例中,其 key 值会由系统分配为 0</span>
<span style="color: #800080;">$array3</span>[] = "yyy"<span style="color: #000000;">;
</span><span style="color: #0000ff;">echo</span> <span style="color: #800080;">$array3</span>[0]; <span style="color: #008000;">//</span><span style="color: #008000;"> output: yyy</span>
<span style="color: #0000ff;">echo</span> "<br>"<span style="color: #000000;">;


</span><span style="color: #008000;">//</span><span style="color: #008000;"> 将任意变量转换为数组时,数组的第一个元素即为该变量本身</span>
<span style="color: #800080;">$s</span> = "sss"<span style="color: #000000;">;
</span><span style="color: #800080;">$array4</span> = (<span style="color: #0000ff;">array</span>)<span style="color: #800080;">$s</span><span style="color: #000000;">;
</span><span style="color: #0000ff;">echo</span> <span style="color: #800080;">$array4</span>[0]; <span style="color: #008000;">//</span><span style="color: #008000;"> output: sss</span>
<span style="color: #0000ff;">echo</span> "<br>"<span style="color: #000000;">;


</span><span style="color: #008000;">//</span><span style="color: #008000;"> 通过 array_values 可以重建数组内部的 key 索引</span>
<span style="color: #800080;">$array5</span> = <span style="color: #0000ff;">array</span><span style="color: #000000;">
(
    </span>"a" =&gt; "abx",
    "x" =&gt; "xyz",
    0 =&gt; "123",<span style="color: #000000;">
);
</span><span style="color: #800080;">$array5</span> = <span style="color: #008080;">array_values</span>(<span style="color: #800080;">$array5</span>); <span style="color: #008000;">//</span><span style="color: #008000;"> 无论之前的 key 是什么,在 array_values 之后,数组内的 key 索引都将变为从 0 开始递增的整型数据</span>
<span style="color: #008080;">var_dump</span>(<span style="color: #800080;">$array5</span><span style="color: #000000;">);


</span><span style="color: #008000;">//</span><span style="color: #008000;"> 通过 list 函数将数组中的成员依次赋值给指定的变量
// 注意:array[0] 对应 list 的 1 个参数,array[1] 对应 list 的 2 个参数......(这里的 array[0], array[1] 不是指第 0 个元素, 第 1 个元素,而是 key 为 0 的元素, key 为 1 的元素)</span>
<span style="color: #0000ff;">list</span> (<span style="color: #800080;">$r1</span>, <span style="color: #800080;">$r2</span>, <span style="color: #800080;">$r3</span>) = <span style="color: #800080;">$array5</span><span style="color: #000000;">;
</span><span style="color: #0000ff;">echo</span> "<span style="color: #800080;">$r1</span>, <span style="color: #800080;">$r2</span>, <span style="color: #800080;">$r3</span>"; <span style="color: #008000;">//</span><span style="color: #008000;"> output: abx, xyz, 123</span>
<span style="color: #0000ff;">echo</span> "<br>";
로그인 후 복사



OK
[源码下载]

본 웹사이트의 성명
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.

뜨거운 기사 태그

메모장++7.3.1

메모장++7.3.1

사용하기 쉬운 무료 코드 편집기

SublimeText3 중국어 버전

SublimeText3 중국어 버전

중국어 버전, 사용하기 매우 쉽습니다.

스튜디오 13.0.1 보내기

스튜디오 13.0.1 보내기

강력한 PHP 통합 개발 환경

드림위버 CS6

드림위버 CS6

시각적 웹 개발 도구

SublimeText3 Mac 버전

SublimeText3 Mac 버전

신 수준의 코드 편집 소프트웨어(SublimeText3)