1.全局和局部变量(下)
2.静态变量
3.函数返回值
4.参数
5.默认参数
6.引用参数
7.可变个数参数的函数
8.什么是回调函数
9.什么是变量函数
10.递归函数的使用
11.如何提高代码重用
全局和局部变量(下):
global $a;
#在函数内部可以直接使用函数外部的全局变量.
**
<?php
$a=10;
function show(){
global $a;
$a++;
}
show();
echo $a;
?>
静态变量:
static $a;
#同一个函数被多次调用时可以共享使用.
<?php
$a=0;
function show(){
global $a;
$a++;
$func=__FUNCTION__;
echo "这是第{$a}次调用{$func}函数!<br>";
}
show();
show();
show();
show();
show();
?>
<?php
function show(){
static $a=0;
$a++;
$func=__FUNCTION__;
echo "这是第{$a}次调用{$func}函数!<br>";
}
show();
show();
show();
show();
show();
show();
?>
函数返回值:
function show($a,$b){
return $a+$b;
}
echo show(10,20);
参数:
function show($i,$j){
return $i+$j;
}
show(10,20);
#参数是函数外面的值进入函数内部的窗口.
<?php
$a=10;
$b=20;
function show($a,$b){
return $a+$b;
}
$r=show($a,$b);
echo "{$a}+{$b}={$r}";
?>
默认参数:
function show($i,$j=2){
return $i+$j;
}
echo show(10);
#$i叫必选参数
#$j叫可选参数
结果是13
<?php
$a=10;
$b=20;
function show($i=1,$j=3){
return $i+$j;
}
echo show($a);
?>
函数说明书:
resource mysql_query ( string $query [, resource $link_identifier ] )
1.resource 函数未来的返回结果
2.mysql_query 函数名
3.string $query 第一个参数为必选参数,而且必须是字符串类型
4.[, resource $link_identifier ] 第二个参数是可选参数,默认为数据库连接资源
引用参数:
$a=10;
function show(&$i){
$i++;
echo $i.'<br>';
}
show($a);
echo $a;
可变个数参数的函数:
function show(){
$args=func_get_args();
foreach($args as $val){
$str.='-'.$val;
}
echo $str;
}
show('a','b','c','d','e','f','a','b','e','1','2','c');
<?php
function show(){
$args=func_get_args();
echo '<pre>';
print_r($args);
echo '</pre>';
}
show('a','b','c','d','e','f','g');
?>
什么是回调函数:
#参数的值的类型可以是另一个函数的名字.
#函数的代码是在语法检测的时候就已经被加载到内存的代码段中.
<?php
function show($i,$j,$c){
return $c($i,$j);
}
echo show(10,20,'sum');
function sum($a,$b){
return $a+$b;
}
?>
什么是变量函数:
<?php
function show(){
echo '<h1>hello word!</h1>';
}
$str='show';
$str();
?>
代码执行规律:
1.从上往下执行.
2.从左往右执行.
递归函数的使用:
<?php
$a=3;
function sum($a){
$tot+=$a;
if($a>1){
$tot+=sum(--$a);
}
return $tot;
}
echo sum($a);
?>
<?php
$a=3;
function sum($a){
$tot+=$a;
if($a>1){
$tot+=sum(--$a);
}
return $tot;
}
echo sum($a);
// sum(3){
// $tot=3;
// $tot+=sum(2){
// $tot=2;
// $tot+=sum(1){
// $tot=1
// return $tot;
// }
// return $tot;
// }
// return $tot;
// }
?>
如何包含外部文件:
1.include ‘config.php’;
<?php
include 'config.php';
mysqli_connect(HOST,USER,PASS);
echo '<h1>1111111111111111</h1>';
echo '<h1>1111111111111111</h1>';
echo '<h1>1111111111111111</h1>';
echo '<h1>1111111111111111</h1>';
echo '<h1>1111111111111111</h1>';
echo '<h1>1111111111111111</h1>';
?>
2.require ‘config.php’;
<?php
require 'config.php';
$conn=mysqli_connect(HOST,USER,PASS);
var_dump($conn);
?>
<h1>1111111111111111</h1>
<h1>1111111111111111</h1>
<h1>1111111111111111</h1>
<h1>1111111111111111</h1>
include和require的区别:
1.include包含文件报错级别为warning,不会终止脚本.
2.require包含文件报错级别为error,会终止脚本.