[TOC]

#函数是什么? 函数是一个被命名的、独立的代码段,它执行特定的任务,并可能给调用它的程序返回一个值。

  1. 函数是被命名的,每个函数都有唯一的名称。
  2. 函数是独立的,无需程序其他部分干预,函数便能执行自己的任务。
  3. 函数执行特定的任务。
  4. 函数可以将一个返回值,返回给调用它的程序。

#为什么要使用函数?

  1. 提高程序的重用性
  2. 提高软件的可维护性
  3. 提高软件的开发效率
  4. 提高软件的可靠性
  5. 控制程序设计的复杂性

函数是PHP编程中最重要的内容之一,它对于结构化程序有着非常重要的作用。

函数是面向对象的基础,请务必将函数的知识掌握牢固。

#自定义函数

function hello() {
    echo "hello whphp";
}

#函数的调用

hello();

#函数的参数

//练习1, 一个参数
function show_nums($num) {
    for($i=0; $i<$num; $i++){
        echo $i."<br />";
    }
}
show_nums(10);

//练习2, 两个参数
function test($a, $b){
    echo "a是".$a.",b是".$b;
}
test("999", "今天天气不错");

//练习3, 参数的顺序
function test($a, $b){
    echo "a是".$a.",b是".$b;
}
$a = "999";
$b = "今天天气不错";
test($b, $a);

//练习4, 默认的参数
function test($a="你好", $b="武汉php"){
    echo "a是".$a.",b是".$b;
}
test("999");

//练习5, 按引用传递参数
function test(&$a) {
    $a = 200;
}
$var = 100;
test($var);
echo $var;

#PHP中变量的范围(作用域)

##局部变量

//测试1
$a = 100;
function test(){
    echo $a;
}
test();

//测试2
function test() {
    $a = 100;
}
test();
echo $a;

//测试3
function test($a) {
    $a = 200;
}
$a = 100;
test($a);
echo $a;

##全局变量

$a = 100;
function test(){
    global $a;  //$a 现在是一个全局变量,无需通过参数传递
    echo $a;
}
test();

##静态变量

function test() {
    static $a = 0;
    echo $a;
    $a++;
}

test();
test();
test();

#函数的返回值

//练习1
function test($a, $b){
    return "a是".$a.",b是".$b;
}
$string = test("999", "今天天气不错");
echo $string;

//练习2
function show_nums($num) {
    $string = "";
    for($i=0; $i<$num; $i++){
        $string .= $i."<br />";
    }
}
$string = show_nums(10);
echo $string;

//echo show_nums(10);

#课后练习 1、自己动手定义一个函数,该函数输出一个指定行列数的表格。该函数接受两个参数,一个控制表格行的参数$row, 另一个控制表格列的参数$cols,先直接使用echo输出,然后再改成返回值return的形式。 2、将之前做的练习改成函数的方式。 3、执行完以下代码后,分别求变量$num1和$num2的值?

$num1 = 10;
function demo($number) {
    $number = $number + 20;
}
demo($num1);
echo $num1;

$num2 = 10;
function demo($number) {
    $number = $number + 20;
}
demo(&$num2);
echo $num2;

4、 执行完以下代码后,输出的结果是?

$a = "hello";
function print_a(){
    $a = "php mysql!!";
    global $a;
    echo $a;
}
echo $a;
print_a();

5、执行完以下代码后,输出的结果是?

$a = "hello";
function print_a(){
    global $a;
    $a = "phper";
}

echo $a;

6、执行完以下代码后,输出的结果是?

function total_sum($c=5, $b=3, $a) {
    echo $a+$b+$c;
}

total_sum(1);

7、 以下程序运行结果为?

function p(){
    return 1;
}
if(p()) {
    echo "false";
} else {
    echo "true";
}