function 函数名称([参数列表 -形参])
{
函数体
return 返回值
}
function divide($one,$two)
{
return $one/$two;
echo ‘你好’; //这句不执行
}
echo divide(99,9);
function demo()
{
return sha1(‘wwwphpxnccsdsds’); //返回 40 位长度
return md5(‘wwwphpcn’); //返回 32 位长度
return 1==1;
return new StdClass;
return array(‘12’,’45’);
return 88.88;
return ‘nihao’;
return true;
}
var_dump(demo());
function test()
{
return [‘status’=>1,’msg’=>’登录成功’];
}
print_r(test());
function demo2()
{
return new class()
{
public $name = ‘dianNao’;
public $fenLie = ‘dianQi’;
}
}
$obj = demo2(); //接收
var_dump($obj);echo; //打印对象
echo $obj->name; //访问对象
echo [‘name’]; //访问数组
function demo3()
{
return json_encode([‘status’=>1,’msg’=>’验证成功’]);
}
var_dump(demo3());
echo ‘<hr>‘;
$res = demo3();
var_dump( json_decode($res,true) ); //json_decode()第二个参数设为 true 拿到数组
//返回一个 3 行 2 列的表格
$table = “<table border ='1' cellspacing='0' >“;
for ($i=0; $i < 8; $i++) {
$table .= “<tr>“;
for ($j=0; $j < 7 ; $j++) {
$table .= “<td>西</td>“;
}
$table .= “</tr>“;
}
$table .= ‘</table>‘;
echo $table;
function createTable(int $rows,int $cols,string $content,string $bgColor) :string
{
$table = “<table border ='1' cellspacing='0' bgColor='$bgColor'>“;
for ($i=0; $i < $rows; $i++) {
$table .= “<tr>“;
for ($j=0; $j < $cols ; $j++) {
$table .= “<td>$content</td>“;
}
$table .= “</tr>“;
}
$table .= ‘</table>‘;
return $table;
}
echo createTable(3,6,’宏’,’red’);
if(!function_exists(‘test’))
{
function test($a,$b,$c,$d,$e)
{
return $a+$b+$c+$d+$e;
}
echo test(1,2,3,4,5);
}
function test1(…$args){//剩余参数用在参数列表中表示收集的作用
// var_dump($args);
return array_sum($args);
}
echo test1(234,34324,23232,1,2,3);
$arr = [23,34,56,6557];
echo test1(…$arr);
function connect(…$arg)
{
return new PDO($arg[0],$arg[1],$arg[2]);
}
$pdo = connect(‘mysql:dbname=chloe’,’root’,’zhoujielun521’);
var_dump($pdo);
if($pdo) echo “数据库连接成功”;
function getName($name)
{
return “欢迎{$name}来到京东花园<br>“;
}
echo getName(‘小皮皮’);
$itemName = ‘iphone 12 pro max 256g’;
$itemPrice = 12585;
function getItemInfo()
{
return sprintf(‘今日主推产品是%s, 商品价格是%d’,$itemName,$itemPrice);
}
// echo getItemInfo();//结论:全局变量在函数体内是无法访问的
// 解决方法 global $GLOBALS
function getItemInfo_pro()
{
// global $itemPrice,$itemName;
return sprintf(‘今日主推产品:%s, 商品价格: %d<br>‘,$GLOBALS[‘itemName’], >$GLOBALS[‘itemPrice’]);
}
echo getItemInfo_pro();
function add()
{
// 子作用域
$leftNum = 25;
$rightNum = 56;
echo “$leftNum + $rightNum = “ .($leftNum + $rightNum);
}
add();
echo $leftNum;
//闭包
$closure1 = function() use ($itemName,$itemPrice)
{
return sprintf(‘今日主推产品是%s, 商品价格是%d’,$itemName,$itemPrice);
};
echo $closure1();
// 闭包作为函数的返回值
function getSite($site)
{
return function($color) use ($site)
{
return sprintf(‘<h1 style="color:%s"><center>%s</center></h1>‘,$color,$site);
};
}
// getSite()函数的返回值是一个闭包 $closure2
$closure2 = getSite(‘淘宝网’);
echo $closure2(‘orange’);
echo getSite(‘淘宝网’)(‘orange’);
// 闭包可以改变全局变量上下文的值 :通过引用传递
$name = ‘灭绝小师太’;
$closure3 = function($newName) use (&$name)
{
$name = $newName;
};
$closure3(‘欧阳克’);
echo $name;
//函数的命名空间
namespace ns1{
function demo(){
return FUNCTION;
}
// echo demo();ns1\demo
}
// 全局空间
namespace {
function demo(){
return FUNCTION;
}
echo demo();
}
序号 | 分类 | 作用域 | 名称 |
---|---|---|---|
1 | 系统函数 | 全局调用 | 有 |
2 | 自定义函数 | 全局调用 | 有 |
3 | 匿名函数 | 限制 | 无 |
序号 | 函数 | 功能 |
---|---|---|
1 | abs | 求绝对值 |
2 | strlen | 求长度 |
3 | json_encode | 转大写 |
4 | strtoupper() | 数组转为 json 字符串 |
5 | json_decode() | 转为 json 字符串转为数组,第二个参数设为 true 拿到数组 |
6 | array_sum() | 计算数组的各个成员的和 |
7 | connect() | 连接数据库 |