function 相关
<?php
$array=array(1,2,3,4,5,6);
function test1(&$var){
$var*=3;
}
$res=array_walk($array,"test1");//array_walk(array,funcname);
print_r($res);
print_r($array);
$array=array(1,2,3,4,5,6,7);
function odd($var){
if($var%2==1){
return $var;
}
}
$res=array_filter($array,'odd');
var_dump($res);
//call_user_func() 和 call_user_func_array();
function study($username){
echo $username." is studying...";
}
function play($username){
echo $username." is playing";
}
function test(){
echo "this is a test</br>";
}
//
call_user_func('play',"king");
call_user_func('test');
echo call_user_func('md5',"queen");
echo "<hr>";
function add($i,$j){
return $i+$j;
}
function reduce($i,$j){
return $i-$j;
}
echo call_user_func("add",3,5);//这里是两个参数
echo "<hr>";
echo call_user_func_array('reduce',array(7,4));//若感觉参数太多,也可以传一个数组
echo call_user_func_array('add',array(1,4));
echo "<hr>";
//匿名函数,也叫闭包函数,即临时创建一个没有指定名字的函数,
//最经常用作回调函数参数的值。
//匿名函数也可作为变量的值来使用。
$func=function(){
return 'this is a test';
};
echo $func();//这是以变量的形式负值
echo "<hr>";
$fun=function($username){//带参数的形式
return 'say hi to '.$username;
};
echo $fun('haha');
echo "<hr>";
//用creat_function来创建匿名函数
$func=create_function('','echo "this is a test....";');
$func();
echo "<hr>";
$fun=create_function('$i,$j','return $i+$j;');
echo $fun(3,8);
echo "<hr>";
$array=[1,2,3,4,5];
//把匿名函数当成一个参数
$res=array_map(function($var){return $var*3;},$array);//array_map(funname,array)
print_r($res);
echo "<hr>";
//把匿名函数当成一个参数
call_user_func(function($username){echo 'say hi to '.$username ;},'kaka');
echo "<hr>";
//ddddd//递归函数-----------------------------------------
//通俗的讲就是自己调用自己的函数,通过特殊条件结束执行
//用到的地方,php遍历,目录的复制,删除非空目录等操作
//以及无限极分类
function testdd($i){
echo $i."</br>" ;
--$i;
if($i>=0){
testdd($i);
}
}
testdd(3);
echo "<hr>";
function testda($i){
echo $i,"<br>";
--$i;
if($i>=0){
testda($i);
}
echo $i,"<br/>";
}
testda(4);
echo "<hr>";
//优化
function testdb($i){
echo $i,"<br/>";
if($i>=0){
$func=__FUNCTION__;//__FUNCTION__魔术常量获取当前函数的函数名
$func($i-1);
}
echo $i,"<br/>";
}
testdb(4);
function getext1($filename){
return strtolower(pathinfo($filename,PATHINFO_EXTENSION));
}
$a='cc.ip.cccccccccc';
echo getext1($a);
function getday($y='年',$m='月',$d='日'){
$dayarr=array('日','一','二','三','四','五','六');
$day=date('w');
return date("Y{$y}m{$m}d{$d} 星期").$dayarr[$day];
}
echo '<center><h1>'.getday().'<h1></center>';
echo "<br/>";
$day=date('w');
echo $day;
echo "<hr>";
function cal($num1,$num2,$opt='+'){
switch($opt){
case "+":
$res=$num1+$num2;
break;
case "-":
$res=$num1-$num2;
break;
case "*":
$res=$num1*$num2;
break;
case "/":
if($num2==0){
exit("0不能做除数");
//break;
}else{
$res=$num1/$num2;
break;
}
case "%":
$res=$num1%$num2;
break;
}
return "{$num1}{$opt}{$num2} = ".$res;
}
echo cal(7,55,"*");
//不知道怎么用implode=join
// $text=implode(range(0,0),range("a","z"),range("A","Z"));
// $text=str_shuffle($text);$text=substr( $text,0,4);
// $rand_color=imagecolorallocate($image,mt_rand(0,255),mt_rand(0,255),mt_rand(0,255));
// $xuehua=imagesetpixel($image, mt_rand...
//
// -------------------------------------------------------------------------------
// ----------------------------------字符串---------------------------------------------
echo "<hr>";
echo "<hr>";
$str='abcdef';
echo $str{0};
echo "<br/>";
echo $str{3}."<br/>";
$str{1}="k";
echo $str;
echo "<hr>";
//若是中文,中文在UTF8下占三个字符
$str="你好";
echo $str{0};
echo $str{1};
echo $str{2};//三个连续输出才以显示
echo "<hr>";
$str='abc';
$str{0}='';
echo $str;
var_dump($str);
//增加
$str="abc";
$str{3}='d';
echo $str;
var_dump($str);
function code($len){
//验证码。
$str="abcdeftghijklmnopqrstuvwxyz";
$str.=strtoupper($str);
$str.='0123456789';
$checkcode='';
for ($i=1;$i<=$len;$i++){
$checkcode.=$str{mt_rand(0,strlen($str)-1)};
}
return $checkcode;
}
echo code(5);
echo "<hr>";
// 定界符
// heredoc语法结构:
// <<<标识名称
// 内容
// 标识名称;
// 标识名称,以字母下划线等开始,
// //可以不有再管相关的字符了
echo "heredoc";
$username="wwkakak";
$table=<<<EOF
<table border='1px' width='80%' align='center'>
<tr><td>1111</td><td>2222</td><td>3333333</td></tr>
<tr><td>1111</td><td>2222</td><td>3333333</td></tr>
<tr><td>1111</td><td>2222{$username}</td><td>33ip"ss"'3'3'333</td></tr>
</table>
EOF;
echo $table;
echo <<<eof
hello baby
eof;
//nowdoc语法结构和heredoc语法结构一样,只是有单引号的作用
echo '<hr/>';
echo 'nowdoc<br/>';
$str=<<<'eof'
helle $username;
eof;
echo $str;
echo "<br/>字符串类型的转换";
echo 123;
echo '<br/>';
echo 34.5;
echo '<br/>';
echo true;
echo '<br/>';
echo 'a',false,'b';
echo 'c',null,'d';
echo '<br/>';
$array=array(12,3,4);
echo '<br/>';
echo $array;
echo '<br/>';
echo $array[0];
echo '<br/>';
$handle=fopen('func.php','r');
echo $handle;
echo '<br/>';
$obj=new stdClass();
var_dump($obj);
//echo $obj;
//Catchable fatal error: Object of class stdClass could not be converted to string in D:\wamp64\www\phpt\func.php on line 300
echo '<br/>';
$var=123;
$var=123.2;
$var=true;
$var=false;
$var=null;
$var=array(1,2,3);
$var=new stdClass();
//Catchable fatal error: Object of class stdClass could not be converted to string
$var=fopen('func.php','r');
$res=(string)$var;
var_dump($var,$res);
//------------------------字符串函数库----------------------------------------
echo "字符串函数库<hr>";
$var='hello baby';
var_dump(is_string($var));
//检测字符串的长度
//strlen($var)
echo strlen($var);
echo '<br/>';
$res=strtoupper($var);
echo $res;
echo '<br/>';
$res=strtolower($var);
echo $res;
echo '<br/>';
//首字母大写
$res=ucfirst($var);
echo $res;
echo '<br/>';
//每个单词首字母大写
$res=ucwords($var);
echo $res;