[PHP从小白到大牛]-014 PHP自定义函数

自定义函数

  • 什么是自定义函数
  • 不是系统预约义的, 是程序员根据自身业务需求本身定义的函数
  • 自定义函数的优势是一次定义,屡次使用;

声明自定义函数

function functionName ( [$arg[=value][,…]] ) {
…
…
}
复制代码
  • 函数名称和 PHP 中的其它标识符命名规则相同;
  • 函数名称建议遵照“驼峰标记法”;
  • PHP 中的全部函数和类都具备全局做用域;
  • PHP 不支持函数重载,也不可能取消定义或者重定义已声明的函数;
<?php


function add($a,$b){
	return $a+$b;
}


function add($a,$b,$c){
	return $a+$b+$c;
}

echo add(1,1,1); // 会报错
复制代码

调用自定义函数

[$变量名称 = ] functionName ( [value,…] )
复制代码
  • $a = demo(); ==> 调用函数, 并使用变量$a, 接收返回值
  • demo(); ==> 只是调用函数

单选题php

下列选项中不符合PHP自定义函数标准的是?()(选择一项)程序员

多选题数组

如下函数会输出‘apple’的是()(选择两项)bash

变量做用域

局部变量

  • 局部变量是在函数内部中定义的变量;
  • 它的做用域为函数定义范围内;

全局变量

  • 全局变量是在函数外部定义的变量;
  • 全局变量的做用域从定义处一直到文件结尾;
  • PHP 中全局变量在函数中使用时必须声明为 global;
  • 使用 $GLOBALS 替代 global
<?php

$a = "apple"; // 全局的


function demo(){
	global $a;
	echo $a;
}

demo();
复制代码

超全局变量

  • $GLOBALS
  • $_SERVER
  • $_GET
  • $_POST
  • $_FILES
  • $_COOKIE
  • $_SESSION
  • $_REQUEST
  • $_ENV

多选题app

下图代码输出的内容选项中描述正确的是()(选择两项)函数

单选题spa

如下全局变量使用正确的是?()(选择一项)3d

参数

  • 经过参数能够传递信息到函数内部;code

  • 一个函数能够有零个或多个参数;多个参数之间以逗号做为分隔符;cdn

  • 参数的数据类型能够为任意数据类型(资源除外);

  • 有默认值的参数称为可选参数,不然称为必选参数;

  • 默认参数必须放在任何须选参数的右侧;

单选题

选项中结果正确的是()(选择一项)

单选题

如下代码输出结果正确的是?()(选择一项)

单选题

如下代码输出的结果正确的是?()(选择一项)

形参和实参

  • 形参是指函数定义时参数;
  • 实参是指函数调用时的参数;
  • 实参和形参在数量上,顺序上应严格一致;

单选题

下列代码的结果正确的是()(选择一项)

单选题

下列代码的结果正确的是()(选择一项)

按值传递

  • 按值传递参数是指直接传递参数值,也能够是变量;

  • 按值传递会在函数内部改变参数的值,但它并不会改变函数外部的值;

单选题

下列代码输出的结果是()(选择一项)

单选题

下列代码输出的结果是()(选择一项)

按引用传递

  • 引用传值必须在参数的前面加上 & 符号;
  • 引用传值的参数值只能是变量;
  • 引用传值会改变函数外部的值;
  • 引用指向原始变量;

单选题

如下代码输出结果正确的是?()(选择一项)

单选题

如下代码输出结果正确的是?()(选择一项)

可变数量的参数

  • PHP 的自定义函数中支持可变数量的参数;
  • 在 PHP 5.5 及更早版本中,使用函数 func_num_args(),和 func_get_args() 实现;
  • 在 PHP 5.6 及以上的版本中,由 ... 语法实现;

单选题

func_num_args的做用是?()(选择一项)

单选题

如下代码输出结果正确的是?()(选择一项)

返回值

  • return 语句将当即停止函数的运行,而且将控制权交回调用该函数的代码行;

  • 若是省略 return语句,则返回值为 NULL;

  • 返回值能够是包括数组和对象的任意类型(资源除外);

  • 函数只能有一个返回值;

  • 若是须要返回多个值怎么办?

多选题

下列选项中输出内容为8的是()(选择两项)

单选题

下列选项中输出结果正确的是()(选择一项)

小做业

定义一个函数, 接收两个参数, 返回第一个参数到最后一个参数的累加

sequence_summation(1,100)返回5050

<?php

function sequence_summation($a,$b){
	$sum = 0;
	for ($i=$a; $i <= $b; $i++) { 
		$sum+=$i;
	}
	return $sum;
}

echo sequence_summation(1,100);
复制代码

匿名函数

  • 没有名称的函数
  • 通常用于回调函数, 回调函数, 都是匿名的
  • 一个函数做为另外一个函数的参数就是回调函数
  • call_user_func(), 第一个参数是一个函数, 剩下的都是该函数的参数

多选题

下列选项输出内容是‘imooc’的是()(选择两项)

内部函数

  • 在函数中声明函数
  • 只有外部函数调用了, 内部函数才能使用

单选题

如下代码输出结果正确的是()(选择一项)

多选题

如下选项会报错的是()(选择两项)

递归函数

  • 本身调用本身

  • 必须设置一个终止条件, 不然无限递归, 至关于死循环
  • 猜想一下代码的执行过程...

  • 使用递归, 实现爱你100次
<?php


function say($str,$num){
	if($num < 10){
		echo say($str,$num+1);
	}
	return $str.(11-$num)."次!<br/>";

}

echo say("爱你",1);
复制代码
  • 递归通常会用于目录的遍历

小做业: 使用递归, 改写以前的累加函数...

<?php

function sequence_summation($a,$b){
	if ($b == $a) {
		return $a;
	}else{
		return $a+sequence_summation($tmp = $a+1,$b);
	}
}

echo sequence_summation(1,100);
复制代码

单选题

下列代码输出的是()(选择一项)

单选题

如下代码输出的结果正确的是?()(选择一项)

可变函数/变量函数

  • 变量名后加()
function hello(){
	echo "hello world";
}

$a = "hello";


$a();
复制代码

单选题

下列代码输出的结果正确的是()(选择一项)

预习 字符串函数, 日期函数, 数学函数

参见:

字符串函数: www.w3school.com.cn/php/php_ref…

数学函数: www.w3school.com.cn/php/php_ref…

日期函数: www.w3school.com.cn/php/php_ref…

相关文章
相关标签/搜索