第十四节:函数-用户自定义函数-函数的参数-返回值

用户自定义函数

一 当我们定义一个函数时,逻辑上函数的作用域是全局的,既可以是定义前,也可以是定义后。如

1 <?php
2 foo();
3 function foo(){
4   echo 'abc';
5 }
6 ?>

他是可以正常执行的。为什么呢?简单说,PHP是先解释,再执行,他灵活的调用了foo()函数。对于function的位置,因为函数的作用域是全局的,所以只要定义了,那么就可以在任意位置去调用它。但是除了两种情况,函数必须在其调用之前定义,一是在条件语句中定义的函数,二是在函数中定义的函数。例如:

1 <?php
2 foo();
3 if(true){
4 function foo(){
5 echo 'abc';    
6     }
7 }
8 ?>
1 <?php
2 bar();
3 function foo(){
4     function bar(){
5         echo 'OK';
6         }
7     }
8 ?>

另外注意函数的几点注意

函数名是大小写无关的,不过在调用函数时候,通常使用其定义时的形式。

PHP不支持函数重载,也不可能取消定义或者重定义已声明的函数。

函数的参数

*注*函数的参数貌似是全类型。(此处待定)

此处有一重点就是,通过引用传统参数。这和函数执行的机制有关,当调用foo()时,其实是将$a的值,拷贝到函数内,而由于函数内变量作用域只在函数内,其完全不影响外部结果。而当使用引用传递参数时,是将bar()的$a和外部作用域的$a指向同一内存块

函数作用域内的$a值改变,那么外部$a也将改变。

 1 <?php
 2 $a=1;
 3 function foo($a){
 4     ++$a;
 5     }
 6 function bar(&$a){
 7     ++$a;
 8     }    
 9 foo($a);    
10 var_dump($a);// (int)1
11 bar($a);
12 var_dump($a);    //(int)2
13 ?>

函数的默认参数可以是数组或者特殊类型NULL,但是拥有默认参数的数组必须在没有默认参数的数组右侧。

函数的返回值

函数的返回值 有一个重点!

就是从函数返回一个引用,例如:

1 <?php
2 function &foo(){
3  static $a=1;
4   return $a;
5     }
6 $b=&foo();
7 $b=5;
8 echo foo(); // 输出5
9 ?>

在函数声明和指派给返回值时都使用引操作符&.  会达成一个效果,就是$b和函数的返回值$a指向同一内存块。其实相当于$a=&$b。

 

转载于:https://www.cnblogs.com/saw2012/archive/2013/01/31/2886643.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
### 回答1: 函数返回值是可有可无的,这取决于函数的设计和使用。如果函数需要返回某个值给调用者使用,那么就需要有返回值。但是如果函数只是执行一些操作,而不需要返回值,那么就可以不用返回值。在编写函数,需要根据实际情况来决定是否需要返回值。 ### 回答2: 在编写函数,通常都会涉及到返回值的问题。有些函数可能是没有必要返回值的,也就是说可以有返回值,也可以没有,但是有些函数必须要有返回值才能保证程序正常运行。 那么,什么情况下函数返回值可以是可有可无的呢?在这里我们需要区分一下函数的两种作用:函数的执行和函数的计算。对于某些函数而言,它只是单纯地执行一些操作,然后将结果输出到屏幕或文件中,这种函数在执行过程中没有返回值的必要;而对于另一些函数,它是用来进行计算的,计算的结果需要返回给调用它的程序,这种函数就必须要有返回值。 对于第一类函数而言,它们严格来说并不是返回值可有可无,而是可以通过输出到屏幕或文件来代替返回值。例如,一个函数可以读取一个文件并将其中的内容显示在屏幕上,它就没有必要返回任何值。这类函数的存在可以有效地减少程序代码的冗余度,使其更加简洁。 对于第二类函数而言,一定要有返回值。这类函数则涉及到程序中的很多算法和逻辑操作,在计算完成之后必须将结果返回给调用它的程序,以保证程序的正确性和可靠性。 总之,函数返回值是否可有可无,是取决于函数的作用目的和实现方式的。对于一些只是执行任务的函数而言,它们可以通过直接输出来代替返回值;但对于进行计算的函数而言,必须要进行返回值操作。在写函数,需要根据函数的作用和需求来合理地设置返回值,以便确保程序的正确性和可靠性。 ### 回答3: 函数返回值是指在函数中通过return语句将数据返回给调用者。在编程中,函数返回值通常用来传递计算的结果,也可以用来表示函数执行的状态、异常信息等。 但是,在某些情况下,return语句可以省略,这函数也可以正常执行。这种情况通常出现在函数没有返回值,或者在函数中没有必要返回结果的情况下。在这种情况下,函数执行完毕后会自动返回一个默认值,比如None。 在Python中,所有的函数都可以省略return语句,即使函数没有返回值,也可以直接使用。例如: ``` def say_hello(): print("Hello, World!") say_hello() ``` 这个函数没有返回值,但是依然可以直接调用,输出结果为"Hello, World!"。 当然,如果在函数中使用了return语句,程序的运行结果可能会不同。例如: ``` def add(a, b): return a + b c = add(1, 2) print(c) ``` 这个函数返回值,将传入参数a和b相加后返回结果,再将结果赋值给c变量。最后输出c的值,结果为3。 因此,虽然函数返回值可有可无,但在具体编程实践中,还是需要根据具体需求来判断是否需要使用return语句。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值