Correcting teacher:天蓬老师
Correction status:qualified
Teacher's comments:函数是现代编程的基石之一
函数就是功能。调用一个函数就是在调用一个功能。
函数的名称应该提示出它的功能。
函数名称以字母或下划线开头(不能以数字开头)。
function 函数名称(类型: 参数列表): 返回值类型
{
// 函数体
return 返回值;
}
function abc(){...}
| 用户根据业务需求创建|
function abc(){
echo '正是江南好风景';
}
abc();
substr(), count()...
| 也叫预定义函数,不必声明直接调用|
$count = '200';
echo $count;
$funcName();
| 函数名使用变量表示|
function xyz(int $money,float $discount):float
{
return $money * $discount;
}
echo '数字是:' . xyz(6000,0.8);
echo '<hr>';
$funcName = 'xyz';
echo '数字是:' . xyz(5000,0.5);
echo '数字是:' . $funcName(5000,0.5);
echo '<hr>';
$f = function (){...}
| 也叫”闭包”或”函数表达式”,常用做回调处理 |
$great = function($big)
{
echo $big . '又大又圆的苹果';
};
$great('桔子');
$great('西瓜');
function sub($x,$y)
{
$final=$x-$y;
return $final;
}
echo "20 - 5 = " . sub(20,5);
string
| 字符串拼接 |
function small ():string
{
$number = 1;
$name = '张三丰';
return $number . ':' . $name;
}
echo small();
echo '<br>';
function small2 ():string
{
$number = 2;
$name = '李寻欢';
return $number . ':' . $name;
}
echo small2();
echo '<br>';
function small3 ():string
{
$number = 3;
$name = '陆小凤';
return $number . ':' . $name;
}
echo small3();
array
| 数组 |
function small4 (): array
{
$number = 1;
$name = '张三丰';
return ['number'=>1,'name'=>'张三丰'];
}
printf('<pre>%s</pre>',print_r(small4(),true));
echo '<hr>';
function small_numbers ()
{
return array ( 1 , 3 , 5 );
}
list ( $one , $three , $five ) = small_numbers ();
printf('<pre>%s</pre>',print_r(small_numbers(),true));
json
| JSON 字符串 |
function small4 (): array
{
$number = 1;
$name = '张三丰';
return ['number'=>1,'name'=>'张三丰'];
}
//echo '<pre>' .print_r(small4(),true)'</pre>';
printf('<pre>%s</pre>',print_r(small4(),true));
echo '<hr>';
function small5() : string
{
//json encode():
return json_encode(['number'=>1,'name'=>'张三丰']);
}
echo small5();
// {
// "number": 1,
// "name": "\u5f20\u4e09\u4e30"
// }
echo '<hr>';
function small6() : string
{
//json encode():
return json_encode(['number'=>1,'name'=>'张三丰']);
}
$data = small6();
echo $data;
serialize
| 序列化字符串 |
function small4 (): array
{
$number = 1;
$name = '张三丰';
return ['number'=>1,'name'=>'张三丰'];
}
function small7() : string
{
return serialize(['number'=>1,'name'=>'张三丰']);
}
echo small7();
//反序列化才可以使用
$arr = unserialize(small7());
printf('<pre>%s</pre>',print_r($arr,true));
function number1(float $arg) : float
{
return $arg *= 3;
}
$value = 40;
echo number1($value) , '<br>';
echo $value;
function number2(float &$arg) : float
{
return $arg *= 5;
}
$value = 35;
echo number2($value) , '<br>';
echo $value;
function number3(float $x, float $y, string $opt = '+')
{
$res = 0;
switch ($opt){
case '+' :
$res = "$x + $y =" .($x + $y);
break;
case '-' :
$res = "$x - $y =" .($x - $y);
break;
case '*' :
$res = "$x * $y =" .($x * $y);
break;
case '/' :
$res = "$x / $y =" .($x / $y);
break;
default:
$res = '非法操作符';
}
return $res;
}
echo number3(15,7), '<br>';
echo number3(13,50,'*'), '<br>';
echo number3(5,78,'#'), '<br>';
function number6(...$args) : float
{
return array_sum($args);
}
$arr = [1,3,5,7,9,11,13,15,17];
print_r(number6(...$arr));
1.可以在页面的任何位置调用函数。
2.函数名只能是字母,数字,下划线的组合,并且之间不能包含空格,数字不能放在变量名首位。与变量的命名类似。
3.函数名不区分大小写。
4.函数命名具有唯一性。
5.json是特殊的序列化返回值。