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 needs
and 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 />'; //调用之前显示为10
increment($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;
}
}