PHP->函数

来源:互联网 发布:m1136mfp扫描软件 编辑:程序博客网 时间:2024/06/01 13:54

1、require( )和include( )
作用:将一个文件载入PHP脚本并执行
已知有一home.php的文件,下面是载入页眉和页脚后的情况

<?php    require('header.php');?><!-- page content --><p>Welcome to the home of TLA Consulting.Please take some time to get to know us.</p><p>We specialize in serving your business needsand hope to hear from you soon.</p><?php    require('footer.php');?>

2、函数的命名
–函数名称只能包含字母、数字和下画线
–函数名不区分大小写,变量名区分

3、函数的原型
当我们描述一个函数的时候,可以参考一个函数的原型,如fopen()函数的原型如下所示:

resource fopen(string filename,string mode [,bool use_include_path [,resource context]])

”resource”告诉我们函数会返回一个资源(即一个打开的文件句柄)
文件名称、打开模式这两个参数为字符串(必选参数)
use_include_path是一个布尔值,而参数context是一个资源

->调用fopen

$name = myfile.txt;$openmode = 'r';$fp = fopen($name,$openmode);

以上代码调用了fopen函数,函数的返回值保存在变量$fp中

4、作用域
举一个例子,对于输出结果自己感受

function fn(){      echo "inside the function ,\$var = '.$var"<br />';      $var = "contents 2"      echo "inside the function ,\$var = '.$var"<br />';  }  $var = "content 1";  fn();  echo "outside the function, \$var = '.$var"<br />

输出结果:

     inside the function,$var =      inside the function, $var = content 2     inside the function, $var = content 1

注:全局变量的关键词global,意味这在函数内部一旦声明了某变量为全局变量,那么在函数调用结束后,该变量的作用域依旧存在

5、参数的引用传递和值传递

function increment($value,$amount = 1){    $value = $value +$amount;}$value = 10;increment($value);echo $value;    //返回结果依旧为10,$value的值在函数内部为11,但在这一段代码中变量$value是一个不同的变量,具有全局域,所有值并未发生改变

->值传递:当传递一个参数的时候,一个新的并且包含该传入值得变量被创建,即为原来的那个变量副本。但函数外部原来的变量值不会改变

->引用传递:通过在函数定义的参数名前加上一个地址符(&)来指定参数的引用传递

function increment(&$value,$amount = 1){    $value = $value + $amount;    }$a = 10;echo $a.'<br />';  //调用之前显示为10increment($a); echo $a.'<br />';  //调用之后显示为11

6、return关键字

->终止函数执行

function larger($x,$y){    if((!isset($x) || (!isset($y))) {        echo "This function requires two numbers.";         //内置isset()判断变量是否被创建并被赋值    return;    //返回为空时,返回函数调用处       }    if($x>=$y){        echo $x."<br />";    }else {        echo $y."<br />"    }}

->从函数返回一个值

function larger($x,$y){    if((!isset($x) || (!isset($y))) {        return false;    }    if($x>=$y){        return $x;    }else {        return $y;    }}
0 0