Correcting teacher:天蓬老师
Correction status:qualified
Teacher's comments:函数的常用知识, 基本上都被我们在课上搞完了
function 函数名(参数):返回值类型{
算法描述;
return:返回值;
}
<?php
echo rand(); //返回随机整数
echo "<br>";
echo rand(1000,9999);//返回四位随机整数
echo "<br>";
$str = "学习php哈哈";
echo mb_substr($str,1,5);//字符串截取
<?php
function example(int $a ){
return $a *=$a;
}
$func = 'example';//函数别名
echo $func(2);
<?php
// 定义一个匿名函数,将其赋值给变量$fuc,方便使用
//同时演示匿名函数通过use()使用全局变量
$b = 10;
$fuc = function (int $a ) use ($b): int {
//返回$a 的绝对值
return abs($a * $b);
};
echo $fuc(-10);
<?php
// 定义一个匿名函数,将其赋值给变量$fuc,方便使用
//同时演示匿名函数通过use()使用全局变量
$b = 10;
$fuc = function (int $a ) use($b) {
//返回$a 的绝对值
return function (int $g ) use ($a,$b) {
return abs( $a * $b) * $g ;
};
};
//先通过$fuc(-10)得到内部的匿名函数,继续传$g=30调用
echo $fuc(-10)(30);
<?php
function funArray(){
$age = 11;
$name = "php";
$num = "320";
//通过数组返回
return [ 'age'=>$age,'name'=>$name,'num' => $num];
}
var_dump((funArray()));
<?php
function funArray(){
$age = 11;
$name = "php";
$num = "320";
//存入数组
$arry = [ 'age'=>$age,'name'=>$name,'num' => $num];
//将数组转为json
return json_encode($arry);
}
var_dump((funArray()));
echo '<hr>';
$str = funArray();
//将json字符串解析
//对象
var_dump(json_decode($str));
echo '<hr>';
//数组
var_dump(json_decode($str,true));
<?php
// 通过序列化返回多个值
function funArray(){
$age = 11;
$name = "php";
$num = "320";
$arry = [ 'age'=>$age,'name'=>$name,'num' => $num];
//将数组转为序列返回
return serialize($arry);
}
var_dump((funArray()));
echo '<hr>';
$str = funArray();
//反序列化,将结果转为可用的数组
var_dump(unserialize($str));
echo '<hr>';
<?php
function change(int &$value) {
//将value执行的地址存储的值平方
$value *= $value;
}
$a = 30;
change($a);
//变量a执行的地址存储的值不再是30,而是900
echo $a;
<?php
// $n 为默认参数,默认参数要放在后面,
function power($x, $n=2){
$s = 1;
while ($n > 0){
$n = $n - 1;
$s = $s * $x;
}
return $s;
}
// 当函数只给一个值的时候,默认n=2
echo power(5);
echo '<hr>';
//如果给2个参数,则第二个参数赋值给n
echo power(3,3);
<?php
function infor(...$args){
//func_get_arg()和func_get_args()可以返回参数当前的值
$arry= func_get_args($args);
//获取索引为1的参数值
$arg= func_get_arg(1);
echo $arg;
echo '<hr>';
return $arry;
}
//直接传入参数
var_dump(infor('男','50kg' ));
echo '<hr>';
//组装一个数组传入
$arry1 = ['张三',20];
var_dump(infor(...$arry1));