PHP5薄荷教程[14]变量操作函数

  从本节开始,我将陆续介绍PHP5的内部函数,这也是PHP的精髓所在。由于知识有限,不能详尽说明,如果想要更深入的学习,可以去PHP的官方网站下载使用手册(建议下载英文版)。
一、empty() isset() unset()
1、bool empty(mixed var)
  该函数用来判断一个变量是否为空,如果为空则返回true,否则返回false。以下值会被判为空:""(空字符串)、0、"0"、null、false、array()(空数组)和未定义、未赋值的变量。
2、bool isset(mixed var [,mixed var [, ...]])
  该函数的功能与empty()相反,用来判断一个或多个变量是否非空。如果都非空则返回true,如果有一个为空则返回false。其判断是否为空的标准同empty();
3、void unset(mixed var [,mixed var [,mixed ...]])
  将一个或多个变量设置为空。

二、判断、获取变量的数据类型
1、bool is_numeric(mixed var)
   判断变量var是否为数字,是则返回true,不是则返回false。以下函数的用法类似:
is_int() is_integer() is_long() 整数
is_float() is_double() is_real() 浮点数
is_string() 字符串
is_bool() 布尔值
is_null() NULL型
is_array() 数组
2、string gettype(mixed var)
  返回变量var的数据类型,是以下值之一:"boolean"、"integer"、"string"、"array"、"object"、"NULL"、"unknown type"。

二、转换、设置数据类型
  数据类型的转换有多种方式。一是让PHP进行内部转换,比如$var=1+"1";结果$var=2,其中的字符串"1"就被自动转换成了整数1。二是进行强制转换,如$var=1+(int)"1";结果$var=2,其中字符串"1"被强制转换成整数1。同样的关键字有(float)、(string)、(bool)等。三则是通过PHP的内部函数来转换了。
1、int intval(mixed var [,int base])
  将var转换成整数。如果var都是数字,则能顺利转换;如果开头是数字,后面含有字母,则从字母开始处忽略,如"123abc"将转换为123;如果开头是字母,则返回0。如果var是字符串,则base可以设置该数的进制,并返回其十进制的整数。如intval("100",2)的值为4;如果var不是字符串,那么base将不起作用。
2、float floatval(mixed var):和(float)的效果完全一样。而doubleval()则等价于floatval()。
3、string strval(mixed var):和(string)的效果完全一样。
4、bool settype(mixed &var,string type)
  将变量var的数据类型转换为由type指定的类型,若成功则返回true,失败则返回false。其中,type的值可以是:"boolean"(或"bool")、"integer"(或"int")、"float"、"string"、"array"、"object"、null"。

三、print_r() var_dump() var_export()
  这三个函数都是用来输出变量的详细信息的,对数组、对象等类型来说尤为实用。
1、bool print_r(mixed expression [,bool return])
  输出expression的值,如果expression是int、float和string的话,将输出它们本身(同print expression);如果是数或对象,则输出详细信息。输出成功则返回true,否则为false。如果return设置为true,则函数的返回值将是要输出的内容,且这些内容不会被输出到网页中。
2、void var_dump(mixed expression [,mixed expression [,...]])
  输出多个expression,区别见下面的例子。
3、mixed var_export(mixed expression [,bool return])
  该函数输出的expression将是合法的PHP代码。如果return设置为true,则函数的返回值将是要输出的内容,且这些内容不会被输出到网页中。如:$arrexp=array(1,2,3);$arr=var_export($arrexp,true);相当于执行$arr=array(1,2,3);
  下面的例子可以看出三者的区别:
$arr=array(0,"var","k1"=>"v1",array("str",1));
<table width="100%" border="1">
<tr><th width="33%">print_r($arr)</th><th width="33%">var_dump($arr)</th><th>var_export($arr)</th></tr>
<tr><td valign="top"><pre>
Array
(
    [0] => 0
    [1] => var
    [k1] => v1
    [2] => Array
        (
            [0] => str
            [1] => 1
        )

)
</pre></td><td valign="top"><pre>
array(4) {
  [0]=>
  int(0)
  [1]=>
  string(3) "var"
  ["k1"]=>
  string(2) "v1"
  [2]=>
  array(2) {
    [0]=>
    string(3) "str"
    [1]=>
    int(1)
  }
}
</pre></td><td valign="top"><pre>
array (
  0 => 0,
  1 => 'var',
  'k1' => 'v1',
  2 =>
  array (
    0 => 'str',
    1 => 1,
  ),
)
</pre></td></tr>
</table>

五、string serialize(mixed value)
  mixed unserialize(string str)
  serialize函数将value转换成一个特殊的字符串,并可用unserialize函数将其转换回来。也就是说,$var和unserialize(serialize($var))是完全等价的。这两个函数的用处就是可以将复杂的数据以字符串的形式保存,并不失真地转换回来。

六、bool import_request_variables(string types [,string prefix])
  该函数的功能是有选择地将$_GET、$_POST和$_COOKIE数组中的变量提取出来,使之成为全局变量。types可以设置要提取的数组和优先权。可以是G、P、C或是它们的组合,且不区分大小写。如"gp"就是提取$_GET和$_POST中的所有变量,如果有重复,则以$_POST为准。prefix用来设置提取出的变量的前缀。比如有$_POST['username']="jerry";,使用import_request_variables("p","post_");则post_username="jerry";

七、array get_defined_vars(void):将所有已定义的变量组织成数组返回。
<?php
$b = array(1, 1, 2, 3, 5, 8);
$arr = get_defined_vars();
print_r($arr["b"]);// print $b
print_r($arr["_SERVER"]);// print all the server vars
?>  

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值