php 声明函数,PHP函数的定义和声明<共三部分>

//第一部分 函数的定义和声明

* 函数的定义:

* 1.

函数是一个被命名的

* 2.独立的代码段

* 3.它执行特定任务

* 4.并可以给调用它的程序返回一个值

*

* 函数的优点:

* 1. 提高程序的重用性

* 2. 提高程序的可维护性

* 3.可以提高软件的开发效率

* 4.提高软年的可靠性

* 5.控制程序的复杂性

*

* 函数的声明

*

* function

函数名(){

* 函数体

* }

*

* function

函数名(参数1, 参数2, 参数.... ) //参数列表,如果有多个就作用,分开

* {

* 函数体

* }

*

* function

函数名(){

* 函数体

* 返回值;

* }

* function

函数体(参数列表){

* 函数体

* 返回值

* }

* 一、函数必须调用才能执行,可以在声明之前调用,也可以在函数声明之后调用

* 二、函数名命名和变量一样, aaa bbb ccc aaaBbbCcc,

函数名称一定要有意义

* 三、函数在声明时不能重名

* * 四、可以通过向函数传递参数,改变函数的行为

* 形参:就在声明函数时,声明的参数,参数就是变量,多个参数用,分开

* 实参: 调用 函数时传给形参数值(数据,也可以变量)

* 五、如果没有返回值则称为过程

* 六、通过使用return 语句返回数据

* 七、函数执行到return语句就结束,所以不要在这个语句后写代码,也可以使用return结束函数的执行

* *

* function 出差(谁, 目的地, 联系人,交通){

* * '''''''

*

* return

出差的结果

*  * }

* 领导2=出差(张三,上海, 王五, 飞机);

* 领导4=出差(李四, 大连, 赵六, 火车);

*

* 函数名的作用:

* * 1. 调用函数,开始执行函数

* 2. 可以向函数中传递 数据

* 3. 函数名就是返回的值

*

echo

"**************************************************************";

echo "一,无参数函数调用";

table1(); //调用函数table();

table1(); //调用函数table();

table1(); //调用函数table();

function table1(){

echo '

border=1 width="800" align="center">';

echo

'

表名

';

for($i=0;

$i<10; $i++){

if($i%2==0)

$bg="#ffffff";

else

$bg="#cccccc";

echo

'

';

for($j=0; $j<10;$j++ ){

echo

'

'.($i*10+$j).''; }

echo '

';

}

echo

'

';

}

echo

"**************************************************************";

echo "二,带参数函数调用"

echo table(10, 10, 800, "aaaa", "red");

echo table(5, 5, 500, "bbbb", "green");

echo table(2, 2, 200, "cccc", "blue");

function table($row, $col, $width, $tableName, $color)

{

$str='

border=1 width="'.$width.'" align="center">';

$str.='

'.$tableName.'

';

for($i=0;

$i

if($i%2==0)

$bg="#ffffff";

else

$bg=$color;

$str.='

bgColor="'.$bg.'">';

for($j=0; $j

$str.='

'.($i*$row+$j).''; }

$str.='

';

}

$str.='

';

return $str;

}

echo

"**************************************************************";

echo "三,返回值函数"

echo sum(10, 5);

echo '
';

echo sum(10,5)+100;

echo '
';

$sum=sum(3, 4);

echo $sum;

function sum($x, $y)

{

$sum=0;

$sum=$x*$x+$y+$y;

return $sum;

}

//第二部分 函数的定义和声明

* 一,PHP的变量的范围

* 局部变量:

在函数中声明的变量就是局部变量,只能在自己的函数内部使用。

* 全局变量:

在函数外声明,在变量声明以后的,直到整个脚本结束前都可以使用,包括在函数中和{}中都可使用

* * PHP的变量分不出 是声明还是使用,

* 在PHP中使用全局变量

要通过global关键字将这个全局变量包括到函数中才能使用到,在global声明之后才是使用全局的变量

*

* 参数就是局部变量,这个局部变量可以调用 时去赋值。

*

//

************************************************函数局部变量

function

demo1()

{

$a=100; //函数局部变量

}

demo1();

//

*************************************************全局变量

$a=10;

function

demo2()

{

global

$a; //声明全局变量

$a+=10;

echo

$a." demo
";

}

function

test(){

global

$a; //声明全局变量

$a+=5;

echo

$a." test
";

}

echo

$a."----
";

demo2();

echo

$a."!!!!
";

demo2();

echo

$a."@@@@@
";

test();

echo

$a."#######
";

* 二,PHP的静态变量

*

* 静态变量只能声明在函数中(类中),不能在全局声明

* 使用static在变量前;

*

* 作用:一个变量可以在同一个函数在多次调用中同用。

* 1. 静态变量在静态代码段中保存

* 2. 一个函数多次调用之间共用,但只在第一次调用 函数时声明到内存,以后再调用用,就不再声明,而直接使用

*

function

test2()

{

static

$a=0;

$a++;

echo

$a."
";

}

test2();

test2();

test2();

test2();

test2();

*

* 三,变量函数:如果一个变量后面有括号

$var(), 就将寻找与变量值$var=hello 同名的函数 hello();

*

function

one($a, $b){

return

$a+$b;

}

function

two($a, $b){

return

$a*$a+$b*$b;

}

function

three($a, $b){

return

$a*$a*$a+$b*$b*$b;

}

$var=one;

echo

"结果:".$var(3, 4)."
";

//调用函数one($a, $b);

$var="two";

echo

"结果:".$var(3, 4)."
";

//调用函数two($a, $b);

$var=three;

echo

"结果:".$var(3, 4)."
";

//调用函数three($a, $b);

* 四,PHP六种函数参数 * a.

函数的功能------------决定是否使用这个函数

* b. 函数的参数------------决定函数怎么调用

---有几个参,传什么类型的值,。。。。

* c.

函数的返回值----------调用后怎么处理这个函数

* * PHP给2000多个函数。。。

都属于系统涵数,都可以通过名称直接使用。

*

* 一定要先使用系统函数,如果系统函数没有你想要的功能,再去自己定义函数

*

* 1.

常规函数

bool copy (

string source, string dest )

2. 带有mixed , mixed表示可以传任何类型的数据

bool chown (

string filename, mixed user )

3. 带有&参数的函数, 表示引用赋值,

这个参数不能传值,只能传一个变量,

然后函数将变量的值改变,我们在使用这个变量时,值也是变化的

bool arsort (

array &array [, int sort_flags] )

*

$arr=array(1, 9, 5, 8, 3, 4);

sort($arr); //排序 .引用赋值 调用

print_r($arr);

*

4.默认函数 带有[]的函数, 表示这个参数是可选的,

如果你传值了就使用你传的值,如果没有传值则使用默认值

直接在声明函数时,就为参数给初值。

可选值和必须值, 必须从后向前设置

bool arsort ( array

&array [, int sort_flags] )

*

//demo3($a,[],[]) //第一个参数必须给出,后两个参数可选

function

demo3($a, $b=20, $c=30){ //自定义可选参数函数

echo

"### $a ### $b ##### $c

########
";

} demo3(8,9); //调用

demo3(4);

demo3(9,9,9);

*

5. 带有...的参数函数,

...表示可以传任意多个参数 int array_unshift ( array &array,

mixed var [, mixed ...] )

*

function demo5() //可以有多个参数

{

$args=func_get_args(); //获取函数参数

$sum=0;

for($i=0; $i

$sum+=$args[$i];

return

$sum;

}

echo demo5(1, 2, 3, 4, 5, 6, 7,8,9,10);

*

6. 回调函数 带有callback, 就是调用这个函数时需要我们传一个函数进来(函数名,函数名字串)

array array_filter ( array input [, callback

callback] )

*

*

function demo6($x, $y)

{

return

$x*$y;

}

function test8($x, $y)

{

return

$x*$x + $y*$y;

}

function sum($a, $b, $fun) //定义回调函数

{

return

$a+$b+$fun($a,$b);

}

echo sum(2, 3, demo6); //调用函数sum

echo "
";

echo sum(2, 4, "test8");

// **************************************************

$a=array(1, 2, -3,4,-5,6,-7,8,9);

print_r(array_filter($a, demo11)); //使用系统函数array_filter

function demo11($n) //自定义过滤函数。过滤掉非偶数

{

if($n%2==

0)

return

true;

else

return

false;

}

//第三部分 函数的定义和声明

*

* 1.

内部函数:

PHP可以在函数内部再声明函数

* 目的就是在函数的内部调用

*

就是用来帮助外部函数完成一些子功能的。

*

function

score($php, $java,$dotnet)

{

function

php($php){

if($php>60)

return

"及格";

else

return

"不极格";

}

function

java($java){

if($java>60)

return

"及格";

else

return

"不及格";

}

function

dotnet($dotnet){

if($dotnet

> 60)

return

"及格";

else

return

"不及格";

}

$total=$php+$java+$dotnet;

$agv=$total/3;

echo

"你的php成绩是 {$php} 分,

".php($php)."
";

echo

"你的java成绩是 {$java} 分,

".java($java)."
";

echo

"你的dotnet成绩是 {$dotnet} 分,

".dotnet($dotnet)."
";

echo

"你的总分是: {$total}
";

echo

"你的平均分是:{$agv}
";

}

score(100,

90, 70);

*

* 2.

递归函数: 就是在自己内部调用自己的函数名

*

function demo($num)

{

echo

$num."
";

if($num>0)

demo($num-1);

//递归调用

else

echo

"--------------------
";

echo

$num."
";

}

demo(10);

*

* 3.

外部函数(使用自己定义的函数库) * * require: 用于静态包含

* include: 用于动态包含

* require_once :可防止重复包含

* include_once :可防止重复包含

* 外部文件后缀可为:

* .txt .html .php

*

*

* include(文件名);

* include "文件名";

* * echo "@@@@@@@@@@@2";

* echo("@@@@@@@@@@@@@");

* break

* exit;

*

require "test.inc.html";

//包含文件test.inc.html

require_once

"test.inc.html"; //可判断是否已包含头文件test.inc.html

/

include "test.inc.php";

include_once

"test.inc.php";

/

****************************************** /

require

"header.inc.php"; //静态包含

if($className=="Action"){

include

"action/".$className.".php"; //动态包含

}elseif($className=="Model"){

include

"model/".$className.".php";

}else{

include

"public/".$className.".php";

}

require

"footer.inc.php";

*

* 4. 一些系统函数的使用 *

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值