字符串和URL地址操作
$array=array("name"=>"name1","pass"=>"pass1");
echo http_build_query($array);
//name=name1&pass=pass1 //多维数组都可以操作
echo http_build_query($array);
//name=name1&pass=pass1 //多维数组都可以操作
parse_str(http_build_query($array),$str); //多维数组都可以操作
print_r($str);
//Array ( [name] => name1 [pass] => pass1 )
print_r($str);
//Array ( [name] => name1 [pass] => pass1 )
$url = 'http://www.example.com/path?googleguy=googley&a=1';
print_r(parse_url($url));
//Array ( [scheme] => http [host] => www.example.com [path] => /path [query] => googleguy=googley&a=1 )
print_r(get_object_vars($this)); //在对象内部
打印的是对象内部的公共属性(public)
打印的是对象内部的公共属性(public)
$test = new Test();
print_r(get_object_vars($test)); //在对象外部
打印的是对象内部的公共属性(public),保护属性(protected),私有属性(private)
function &test()
{
static $b=0;//申明一个静态变量
$b=$b+1;
echo $b;
return $b;
}
{
static $b=0;//申明一个静态变量
$b=$b+1;
echo $b;
return $b;
}
$a=test();//这条语句会输出 $b的值 为1
$a=5;
$a=test();//这条语句会输出 $b的值 为2
$a=&test();//这条语句会输出 $b的值 为3
$a=5;
$a=test();//这条语句会输出 $b的值 为6
$a=test()方式调用函数,只是将函数的值赋给$a而已, 而$a做任何改变 都不会影响到函数中的$b.
而通过$a=&test()方式调用函数呢, 他的作用是将return $b中的 $b变量的内存地址与$a变量的内存地址,
指向了同一个地方. 即产生了相当于这样的效果($a=&b;) 所以改变$a的值,也同时改变了$b 的值 ,所以在执行了:
$a=&test(); $a=5; 以后,$b的值变为了5 ......
$a=5;
$a=test();//这条语句会输出 $b的值 为2
$a=&test();//这条语句会输出 $b的值 为3
$a=5;
$a=test();//这条语句会输出 $b的值 为6
$a=test()方式调用函数,只是将函数的值赋给$a而已, 而$a做任何改变 都不会影响到函数中的$b.
而通过$a=&test()方式调用函数呢, 他的作用是将return $b中的 $b变量的内存地址与$a变量的内存地址,
指向了同一个地方. 即产生了相当于这样的效果($a=&b;) 所以改变$a的值,也同时改变了$b 的值 ,所以在执行了:
$a=&test(); $a=5; 以后,$b的值变为了5 ......
// 获取机器字长
function bit_of_machine_pf() {
if (!is_int(32768))
return 16;
else if (!is_int(2147483648))
return 32;
else
return 64;
}
// 获取int长度
function byte_of_int_pf() {
return (int) (bit_of_machine_pf() / 8);
}
function byte_of_int_pf() {
return (int) (bit_of_machine_pf() / 8);
}