
批改狀態(tài):合格
老師批語(yǔ):總結(jié)的很好, 你是怎么輸出可愛的小表情的呢
function 函數(shù)名(參數(shù)類型:可選,參數(shù)):返回值類型限定
{
函數(shù)體
return 返回值(返回任意類型,單個(gè)值,之后代碼不會(huì)執(zhí)行);
}
//無(wú)返回值
function f1()
{
return md5("abc");
}
echo f1(), "<hr>";
//返回指定類型
function f2($a, $b): int
{
return $a + $b;
}
echo f2(1.1, 2.2), "<hr>"; //3
//返回?cái)?shù)組
function f3(): array
{
return ['name' => 'Em', 'age' => 18];
}
$arr = f3();
print_r($arr); //Array ( [name] => Em [age] => 18 )
echo '<hr>';
//返回對(duì)象 以匿名類返回
function f4(): object
{
return new class
{
public $id = '0001';
public $gender = 'male';
};
}
$user = f4();
var_dump($user);
//object(class@anonymous)#1 (2) { ["id"]=> string(4) "0001" ["gender"]=> string(4) "male" }
//訪問對(duì)象屬性
echo $user->gender; //male
echo '<hr>';
//返回JSON字符串
function f5(): string
{
global $arr;
return json_encode($arr);
}
$jsonStr = f5();
echo $jsonStr; // {"name":"Em","age":18}
//解析JSON字符串,還原成PHP可以處理的數(shù)據(jù)類型
$jd = json_decode($jsonStr);
var_dump($jd);
//object(stdClass)#2 (2) { ["name"]=> string(2) "Em" ["age"]=> int(18) }
//JSON字符串解析為數(shù)組
$jd = json_decode($jsonStr, true);
var_dump($jd);
//array(2) { ["name"]=> string(2) "Em" ["age"]=> int(18) }
//返回 序列化字符串
function f6()
{
global $arr;
return serialize($arr);
}
echo f6();
//a:2:{s:4:"name";s:2:"Em";s:3:"age";i:18;}
file_put_contents('f6.txt', f6());
//反序列化
var_dump(unserialize(f6()));
//array(2) { ["name"]=> string(2) "Em" ["age"]=> int(18) }
# 循環(huán)創(chuàng)建表格
function createTable(int $row, int $col)
{
$table = "<table border='1' cellspacing='0'>";
for ($i = 0; $i < $row; $i++) {
$table .= "<tr>";
for ($j = 0; $j < $col; $j++) {
$table .= "<td>1</td>";
}
$table .= "</tr>";
}
$table .= "</table>";
return $table;
}
echo createTable(2, 3), '<hr>';
// 參數(shù)有默認(rèn)值
function createTable2(int $row = 2, int $col = 2)
{
$table = "<table border='1' cellspacing='0'>";
for ($i = 0; $i < $row; $i++) {
$table .= "<tr>";
for ($j = 0; $j < $col; $j++) {
$table .= "<td>1</td>";
}
$table .= "</tr>";
}
$table .= "</table>";
return $table;
}
echo createTable2(), '<hr>';
// 參數(shù)部分有默認(rèn)值,部分沒有默認(rèn)值
function createTable3(int $row, int $col, string $bgcolor = "lightblue", string $text = '?')
{
$table = "<table border='1' cellspacing='0' bgcolor={$bgcolor}>";
for ($i = 0; $i < $row; $i++) {
$table .= "<tr>";
for ($j = 0; $j < $col; $j++) {
$table .= "<td>{$text}</td>";
}
$table .= "</tr>";
}
$table .= "</table>";
return $table;
}
echo createTable3(5, 6), '<hr>';
// 引用參數(shù)
function fo(&$p)
{
return $p .= $p;
}
$v1 = '?';
echo fo($v1), '<br>';
echo $v1, '<hr>';
# 剩余參數(shù)
function getSum(...$params)
{
return array_sum($params);
}
$arr = [1, 2, 3, 4, 5];
echo getSum(...$arr), '<hr>'; //15
echo getSum(1, 2, 3); //6
<?php
# 匿名函數(shù) 閉包
$closure = function ($name) {
return 'name: ' . $name;
};
echo $closure('Em'), '<br>'; // name: Em
# 閉包通過use 可以訪問函數(shù)外部的自由變量/父作用域中的變量
$name = 'Em';
$age = 22;
$closure2 = function () use ($name, $age) {
return sprintf('name: %s <br> age: %d', $name, $age);
};
echo $closure2(), '<br>';
//name: Em
//age: 22
#閉包通過use引用傳遞
$closure3 = function ($newAge) use (&$age) {
$age = $newAge;
};
$closure3(18);
echo $age, '<br>'; //18
#閉包常用作函數(shù)返回值
function foo($animal)
{
return function ($sound) use ($animal) {
return sprintf('%s: %s', $animal, $sound);
};
}
echo foo('?')('meow~');
微信掃碼
關(guān)注PHP中文網(wǎng)服務(wù)號(hào)
QQ掃碼
加入技術(shù)交流群
Copyright 2014-2025 http://ipnx.cn/ All Rights Reserved | php.cn | 湘ICP備2023035733號(hào)