php 接触的不常见函数
constant
constant — 返回一个常量的值
constant ( string $name ) : mixed 通过 name 返回常量的值。
当你不知道常量名,却需要获取常量的值时,constant() 就很有用了。也就是常量名储存在一个变量里,或者由函数返回常量名。
define("MAXSIZE", 100);
echo MAXSIZE.'
';
echo constant("MAXSIZE"); //same thing as the previous line
interfacebar {const test = 'bar!';
}classfoo {const test = 'foo!';
}
$const = 'test';
var_dump(constant('bar::'. $const)); //string(7) "foobar!"
var_dump(constant('foo::'. $const)); //string(7) "foobar!"
?>
结果:100
100string(4) “bar!” string(4) “foo!”
array_walk()
对数组中的每个元素应用用户自定义函数:
语法:array_walk(array,myfunction,parameter…)
定义和用法
array_walk() 函数对数组中的每个元素应用用户自定义函数。在函数中,数组的键名和键值是参数。
注释:您可以通过把用户自定义函数中的第一个参数指定为引用:&$value,来改变数组元素的值(参见实例 2)。
提示:如需操作更深的数组(一个数组中包含另一个数组),请使用 array_walk_recursive() 函数。
function myfunction($value,$key,$p)//存在key和value 还可以多加一个参数
{
echo"$key $p $value
";
}
$a=array("a"=>"red","b"=>"green","c"=>"blue");
array_walk($a,"myfunction","has the value");?>
只能带一个参数
array_map()
函数将用户自定义函数作用到数组中的每个值上,并返回用户自定义函数作用后的带有新值的数组。
语法:array_map(myfunction,array1,array2,array3…)
function myfunction($v)//只有value 没有key的
{return($v*$v);
}
$a=array(1,2,3,4,5);
print_r(array_map("myfunction",$a));?>
结果
Array ( [0] => 1 [1] => 4 [2] => 9 [3] => 16 [4] => 25 )
array_filter()
用回调函数过滤数组中的元素:
array_filter() 函数用回调函数过滤数组中的元素,如果自定义过滤函数返回 true,则被操作的数组的当前值就会被包含在返回的结果数组中, 并将结果组成一个新的数组。如果原数组是一个关联数组,键名保持不变。
function myfunction($v)
{if ($v==="Horse")
{return true;
}return false;
}
$a=array(0=>"Dog",1=>"Cat",2=>"Horse");
print_r(array_filter($a,"myfunction"));?>
结果:
Array ( [2] => Horse )