php函数中

举报
陈业贵 发表于 2021/12/15 00:58:29 2021/12/15
【摘要】 参数的数量: 通常情况下,形式参数的数量应该和实际参数的数量保持一致。但是也不是必须遵守这个规则。 比如在定义形式参数的时候,只有一个形参,我们在填写实参的时候,可以填写100个。 但是如果实际参数的数量...

参数的数量:
通常情况下,形式参数的数量应该和实际参数的数量保持一致。但是也不是必须遵守这个规则。
比如在定义形式参数的时候,只有一个形参,我们在填写实参的时候,可以填写100个。
但是如果实际参数的数量小于形式参数,那么就会触发错误。

记住了,兄弟们,实参的数量可以大于形参的数量,但是实参的数量不能小于形参的数量哈
也就是说比如我有三个糖(实参)sum(1,1,1),有两个小朋友(形参)function sum( a , a, a,b),我每一个小朋友可以分一个糖,还剩一颗是吧。但是如果我只有一个糖sum(1),却要分给两个小朋友(function sum( a , a, a,b))你说行吗?不行是吧,是不是不合适啊。一样道理是吧,
是不是这样,兄dei。
不说了,举代码说明把。
//实参大于形参

<?php
sum(1,2,3);
function sum($a,$b)
{
	$c=$a+$b;
	echo($c);
}
?>

  
 
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8

结果:3

//实参小于形参

<?php
sum(1);
function sum($a,$b)
{
	echo($a);
}
?>

  
 
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7

效果:
Fatal error: Uncaught ArgumentCountError: Too few arguments to function sum(), 1 passed in C:\xampp\htdocs\2.php on line 2 and exactly 2 expected in C:\xampp\htdocs\2.php:3 Stack trace: #0 C:\xampp\htdocs\2.php(2): sum(1) #1 {main} thrown in C:\xampp\htdocs\2.php on line 3

兄弟们,记住哈,有一个法子实参小于形参也不会错,我试试看啊

<?php
sum(1);
function sum($a,$b=6)
{
	$c=$a+$b;
	echo($c);
}
?>

  
 
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8

效果:7

如果在实际工作中,实际参数的数量多于了形式参数怎么办呢?

<?php
sum(1,2,3,4,5,6,7,8,9);
function sum()
{
	print_r(func_get_args());
}
?>

  
 
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7

效果:
Array ( [0] => 1 [1] => 2 [2] => 3 [3] => 4 [4] => 5 [5] => 6 [6] => 7 [7] => 8 [8] => 9 )

函数的返回值:
我代码示例把:

<?php
$c=sum(1,2);
echo($c);
function sum($a,$b)
{
	return $
}
?>

  
 
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8

效果:3

可变参数:
可变函数:一个变量的值刚好是一个函数的名
字,那么在调用的时候,就可以通过变量来调用函数。
我代码示例把:

<?php
$a="lw";//一个变量的值等于
$a();//一个变量的名啊(核心:加个括号即可)
function lw()
{
	echo "贵哥牛逼";
}
?>

  
 
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8

效果:贵哥牛逼

匿名函数;

<?php
$show=function ()
{
echo "贵哥牛逼";
};
$show();
?>

  
 
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7

效果:贵哥牛逼

变量的作用域:
有了函数之后,变量就有了作用域的区分,包括:全局变量、局部变量、超全局变量。
全局变量:定义在函数外部,只能在函数外部使用。(外面我是老大))
局部变量:定义再函数内部,只能在函数内部使用。(内部我是老大)
超全局变量:PHP定义好的,我们直接使用就可以了。(内外部我都是大佬,说一不二的)

<?php
//全局变量
$a=7;
function sum()
{
	echo($a);
}
sum();
?>

  
 
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9

//在函数内部不能使用,会报错哦
Notice: Undefined variable: a in C:\xampp\htdocs\2.php on line 6

<?php
//局部变量
function sum()
{
	$b=8;
}
echo($b);
sum();
//效果 Notice: Undefined variable: b in C:\xampp\htdocs\2.php on line 9
?>

  
 
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10

超全局变量(系统定义好的)
$GLOBALS
$_SERVER
$_REQUEST
$_POST
$_GET
$_FILES
$_ENV
$_COOKIE
$_SESSION

<?php
//超全局变量
$_GET['name']="李文";
function show()
{
	echo($_GET['name']);
}
show();
?>

  
 
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9

效果:李文

$GLOBALS:以数组的形式做的哈

<?php
$name="李文&陈业贵";
echo $GLOBALS['name'];
?>

  
 
  • 1
  • 2
  • 3
  • 4

效果:李文&陈业贵
当定义变量的时候,$GLOBALS也会将变量的名字和值存起
来,将以数组的方式保存起来。

<?php
$GLOBALS['name']="贵哥";
echo $name;
?>

  
 
  • 1
  • 2
  • 3
  • 4

按照这种形式理解就可以了

还有一种方式,可以在函数内部使用全局变量,那就是global关键字

<?php
$name="王者";
show();
function show()
{
	global $name;//在函数内部定义为可以获取全局的变量$name
	echo($name);
}
?>

  
 
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9

文章来源: blog.csdn.net,作者:贵哥的编程之路(陈业贵),版权归原作者所有,如需转载,请联系作者。

原文链接:blog.csdn.net/qq_37805832/article/details/106133868

【版权声明】本文为华为云社区用户转载文章,如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@huaweicloud.com
  • 点赞
  • 收藏
  • 关注作者

评论(0

0/1000
抱歉,系统识别当前为高风险访问,暂不支持该操作

全部回复

上滑加载中

设置昵称

在此一键设置昵称,即可参与社区互动!

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。