2024年C C++最新PHP——函数夯实基础篇_实参命名规则(1),凭借这份C C++面试题集

img
img

网上学习资料一大堆,但如果学到的知识不成体系,遇到问题时只是浅尝辄止,不再深入研究,那么很难做到真正的技术提升。

需要这份系统化的资料的朋友,可以添加戳这里获取

一个人可以走的很快,但一群人才能走的更远!不论你是正从事IT行业的老鸟或是对IT行业感兴趣的新人,都欢迎加入我们的的圈子(技术交流、学习资源、职场吐槽、大厂内推、面试辅导),让我们一起学习成长!


三、函数命名规范

命名规范:由字母、数字和下划线组成,但是不能以数字开头。函数作为一种常用的结构,一般遵循以下规则:函数通常名字代表着函数的功能,而有些功能会比较复杂,可能一个单词不足以表达,需要多个组合。

  1. 驼峰法:除了左边第一个单词外,后面所有的单词首字母都大写:showParentInfo()
  2. 划线法:单词之间通过下划线连接,单词都是小写:show_parent_info()

四、形参和实参

形参:形式参数,不具有实际意义的参数,是在函数定义时使用的参数。

实参:实际参数,具有实际意义的参数,是在函数调用时使用的参数。

两者关系:形参是实参的载体:实参在调用时通常是需要传入到函数内部参与计算(运算),那么需要在函数内部去找到实际数据所在的位置才能找到数据本身:需要实际调用的时候,将数据以实参的形式传递给形参:给形参赋值,从而使得函数内部可以用到外部数据。

<h3>函数参数形参和实参</h3>
<?php
	header("Content-type:text/html;charset=gbk");
	//定义函数
	function jia($a,$b){  //形参可以有多个,逗号,隔开
		echo $a + $b;//函数体使用形参运算
	};
	$num = 10;//定义实参
	jia($num,2);//传入实参,实参可以是变量、常量、运算结果等
?>

  • 在PHP中允许实参多余形参(个数):函数内部不用而已
  • 在PHP中理论上形参个数没有限制(实际开发不会太多)
  • 实参不能少于形参个数。


五、形参默认值

默认值:default value,指的是形参的默认值,在函数定义的时候,就给形参进行一个初始赋值:如果实际调用传入的参数(实参)没有提供,那么形参就会使用定义时的值来进入函数内部参与运算。通常默认值是用在一些,一定会有某个数据参与,但是可能通常是某个我们知道的值。

<h3>形参默认值</h3>
<?php
	header("Content-type:text/html;charset=gbk");
	$a = 10;//定义实参
	//定义函数
	function jia($a = 6,$b = 4){  //此时$a是实参,编译不执行,属于jia函数内部,跟外面的$a=10不冲突。
		echo $a + $b;//10 + 4 = 14
	};
	jia($a);//调用$a,有传参就是10,$b是4,所以值就是14
	echo "<hr/>";
	echo $a;//10
?>

注意:默认值的定义是放在最右边的(多个),不能左边形参有默认值,但是右边没有函数外部定义的变量名字与函数定义的形参名字冲突(同名)是没有任何关联关系的;如果多个函数使用同样的形参名字也不冲突。


六、实参引用传递

实参在调用时会将值赋值给形参,那么实际上使用的方式就是一种简单的值传递:将实参(如果是变量或者常量或者其他表达式)的结果(值)取出来赋值给形参:形参与外部实际传入的参数本身没有任何关联关系:只是结果一样。有的时候,希望在函数内部拿到的外部数据,能够在函数内部改变,那么就需要明确告知函数(定义时),函数才会在调用的时候去主动获取外部数据的内存地址。以上这种定义形式参数的方式叫作引用传值。

基本定义语法:

Function 函数名(形参1,&形参2){

//函数体

}

<h3>引用传递</h3>
<?php
	header("Content-type:text/html;charset=gbk");
	function xiao($x,&$y){ //定义函数xiao()
		$x = $x * $x;
		$y = $y * $y; //修改两个形参的值
		echo $x;echo "<hr>";echo $y,"<hr>";
	};
	$x = 4;$y = 2;//定义变量
	xiao($x,$y);
	echo $x,"<hr>",$y,"<hr>";
?>

思考:两者对比,为什么第二个y变成了4?

参考:php——三篇夯实根基第一篇_xiaochuhe.的博客-CSDN博客里面的变量引用赋值。

注意:引用传值注意事项:在传入实参的时候,必须传入变量!!!


七、函数返回值(return)

返回值:return,指的是将函数实现的结果,通过return关键字,返回给函数外部(函数调用处):在PHP中所有的函数都有返回值。****(如果没有明确return使用,那么系统默认返回NULL。

<h3>函数返回值</h3>
<?php
	header("Content-type:text/html;charset=gbk");
	function chuhe(){//定义函数
		echo __FUNCTION__;echo '<hr/>';//输出当前函数的名称
		echo __FILE__;echo '<hr/>';//输出当前文件名的绝对路径
	};
	//chuhe();echo '<hr>';
	var_dump(chuhe());

返回值作用:将计算结果返回给调用处,并且函数的返回值可以是任意数据类型

<h3>函数返回值——Retrun</h3>
<?php
	header("Content-type:text/html;charset=gbk");
	function jia($x,$y){
		return $x + $y;//return直接结束jia函数
		echo $x; //注意,此时echo函数不执行
	};
	$num =jia(4,5);//9
	echo $num;

  • return在函数内部存在的价值:返回当前函数的结果(当前函数运行结束)
  • return还可以在文件中直接使用(不在函数里面):代表文件将结果return后面跟的内容,转交给包含当前文件的位置。(通常在系统配置文件中使用较多),在文件中也代表中终止文件后面的代码:return之后的内容不会执行。

八、作用域

作用域:变量(常量)能够被访问的区域

  • 变量可以在普通代码中定义
  • 变量也可以在函数内部定义

作用域分类:

  1. 全局变量
  2. 局部变量
  3. 超全局变量
1.全局变量

全局变量:就是用户普通定义的变量(函数外部定义)

所属全局空间:在PHP中只允许在全局空间使用:理论上函数内部不可方法

脚本周期:直到脚本运行结束(最后一行代码执行完)

<h3>全局变量</h3>
<?php
	header("Content-type:text/html;charset=gbk");
	$global = "这是全局变量!"; //定义变量
	function chuhe(){ 
		$inner = __FILE__;//局部变量
		echo $global; //肯定是报错的,函数内部肯定是访问不了全局变量滴
	};
	chuhe();//调用函数
	
2.局部变量

局部变量:就是在函数内部定义的变量

所属当前函数空间:在PHP中只允许在当前函数自己内部使用

函数周期:函数执行结束(函数是在栈区中开辟独立内存空间运行)

<h3>局部变量</h3>
<?php
	header("Content-type:text/html;charset=gbk");
	$global = "这是全局变量!"; //定义变量
	function chuhe(){ 
		$inner = __FILE__;//局部变量
		//echo $global; //肯定是报错的,函数内部肯定是访问不了全局变量滴
	};
	chuhe();//调用函数
	echo $inner;//访问局部变量,也是报错的

3. 超全局变量

超全局变量:系统定义的变量(预定义变量: _ S E R V E R 、 \_SERVER、 _SERVER_POST等)

所属超全局空间:没有访问限制(函数内外都可以访问)

超全局变量会将全局变量自动纳入到 G L O B A L S 里面,而 GLOBALS里面,而 GLOBALS里面,而GLOBALS没有作用域限制,所以能够帮助局部去访问全局变量:但是必须使用数组方式。

(1)内部调用外部
<h3>超全局变量</h3>
<?php
	header("Content-type:text/html;charset=gbk");
	$global = "这是全局变量!"; //定义变量
	function chuhe(){ 
		$inner = __FILE__;//局部变量
		echo $GLOBALS['global'];//讲全局变量纳入$GLOBALS里面
	};
	chuhe();//调用函数

(2)外部调用内部
<h3>超全局变量</h3>
<?php
	header("Content-type:text/html;charset=gbk");
	$global = "这是全局变量!"; //定义变量
	function chuhe(){
		global $inner; //定义变量,使用全局变量。
		$inner = __FILE__;//局部变量
					
	};
	chuhe();echo $inner;//调用函数,并访问局部变量

4.静态变量

静态变量:static,是在函数内部定义的变量,使用static关键字修饰,用来实现跨函数共享数据的变量:函数运行结束所有局部变量都会清空,如果重新运行一下函数,所有的局部变量又会重新初始化。

基本语法:

Function 函数名(){

//定义变量

Static $变量名 = 值;               //通常会在定义的时候就直接赋值

}

<h3>静态变量</h3>
<?php
	header("Content-type:text/html;charset=gbk");
	function xiao(){
		$a = 2;//定义变量
		static $b = 3;//定义静态变量
		echo $a++;echo "<hr>";
		echo $b++;echo "<hr>";
	};
	xiao();//调用函数
	xiao();//再调一次
	xiao();//再调一次

静态变量的作用是为了跨函数共享数据(同一个函数被多次调用) 。


九、可变函数

当前有一个变量所保存到值,刚好是一个函数的名字,那么就可以使用变量+()来充当函数名使用

<h3>可变函数</h3>
<?php
	header("Content-type:text/html;charset=gbk");
	function chu(){
		echo __FILE__;echo __FUNCTION__;echo __LINE__;
	}
	$xiao = "chu";//定义变量
	$xiao();//调用可用函数

附加思考:

<h3>可变函数</h3>
<?php
	header("Content-type:text/html;charset=gbk");
	function xiao($a,$b){ //假设定义系统函数
		$b = $b + 6;
		return $a($b);//chuhe(16)
	}
	function chuhe($c){
		return $c * $c * $c;  //定义一个用户函数,求该函数的3次方
	}
	echo xiao('chuhe',10);//16*16*16
	echo "<br>","懵了吧,多想想就懂了!";
	//懵了吧,多想想就懂了!!


十、匿名函数

没有名字的函数,变量保存匿名函数,本质得到的是一个对象(Closure)。

<h3>函数</h3>
<?php
	header("Content-type:text/html;charset=gbk");
	$xiaofeng = function(){ //定义匿名函数
		echo "我是萧风!";
	};
	$xiaofeng();echo "<hr>";//调用匿名函数
	var_dump($xiaofeng);//查案变量类型及内容

img
img

既有适合小白学习的零基础资料,也有适合3年以上经验的小伙伴深入学习提升的进阶课程,涵盖了95%以上C C++开发知识点,真正体系化!

由于文件比较多,这里只是将部分目录截图出来,全套包含大厂面经、学习笔记、源码讲义、实战项目、大纲路线、讲解视频,并且后续会持续更新

如果你需要这些资料,可以戳这里获取

$xiaofeng);//查案变量类型及内容


![](https://img-blog.csdnimg.cn/98c4312ea34143b5b05a43bf6a13a12c.png?x-oss-process=image/watermark,type_d3F5LXplbmhlaQ,shadow_50,text_Q1NETiBAeGlhb2NodWhlLg==,size_20,color_FFFFFF,t_70,g_se,x_16)




[外链图片转存中...(img-rcBmNkB5-1715552999628)]
[外链图片转存中...(img-dzyWe4gc-1715552999629)]

**既有适合小白学习的零基础资料,也有适合3年以上经验的小伙伴深入学习提升的进阶课程,涵盖了95%以上C C++开发知识点,真正体系化!**

**由于文件比较多,这里只是将部分目录截图出来,全套包含大厂面经、学习笔记、源码讲义、实战项目、大纲路线、讲解视频,并且后续会持续更新**

**[如果你需要这些资料,可以戳这里获取](https://bbs.csdn.net/topics/618668825)**

  • 15
    点赞
  • 14
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值