学习概要:

一.语言结构

二.自己定义函数

三.变量作用域

四.静态变量

五.函数返回值

六.參数

七.默认參数

八.引用參数

九.可变个数函数

十.回调函数

十一.变量函数

十二.递归函数

十三.文件包括







函数分类

1.自己定义函数

2.回调函数

3.变量函数

4.递归函数



语言结构:

if()

for()

while()

switch()





echo()

print()



array()


list()

foreach()



isset()

unset()

   empty()

   

exit()

die()



include()

require()



自己定义函数:

function fun(){}



调用函数

fun()

<?php



function jiutb($num,$color){

   for($i=1;$i<=$num;$i++){

    for($j=1;$j<=$i;$j++){

    echo "<font color='{$color}'>"."$i*$j=".($i*$j)." </font> ";

    }

    echo "<br>";

   }

   echo "<hr>";

}



jiutb(9,"#cccccc");

jiutb(10,"red");

?>



默认參数:

function jiutb($num=9,$color="black"){
}



可变參数



<?php



function fun(){



   echo func_num_args();//得到參数的个数

   echo array_sum(func_get_args());//得到參数的和

}



fun(2,3,4,5);

?

>





无限多參数之和:

<?php



function fun(){



  // echo func_num_args();//得到參数的个数

   //echo array_sum(func_get_args());//得到參数的和

   

   $tot=func_num_args();

   $arr=func_get_args();

   

   

   for($i=0;$i<$tot;$i++){

    $sum+=$arr[$i];

   }

  echo $sum;

}



fun(2,3,4,5);

?>





变量函数

function fun(){}

$a="fun";

$a(2,3,4,5);



变量作用域:

1.全局变量

函数外面的变量

2.局部变量

函数内部的变量

glocalkeyword修饰后能够把局部变量变为全局变量

<?

php



$num=10;



function fun(){

global $num;//能够改动全局变量或者说和外面的变量相同使用

$num=20;

}



fun();



echo $num;

?

>





引用參数:

1.函数内部和外部指向同一个地址

<?

php



$num=10;



function fun(&$i){//&$i表示传的是上文的地址,要改大家一起改

$i++;

}



fun($num);



echo $num;

?>



回调函数:

是參数的一种.

一个函数的參数是还有一个函数的名字,那么这个參数就叫回调函数

<?php



//回调函数





function sum($i,$j){

return $i+$j

}

function fun($a,$b,$k)

echo $k($a,$b);



fun(1,2,"sum");

?>



静态变量

多次调用同一个函数,静态变量能够一直跟踪下去.

//当调用程序的时候,统计这个函数调用了几次.

<?php

$num=0;

//静态变量

function show(){

global $num;

$num++;



echo "这是第{$num}次被调用<br>";

}



show();

show();

?>

静态变量方法:

<?

php





//静态变量

function show(){

static $num;

$num++;



echo "这是第{$num}次被调用<br>";

}



show();

show();

show();

?>



文件包括:

1.include() 包括出错,脚本继续运行

2.require() 假设包括出错,脚本马上终止



递归函数:

函数里面调用本函数


1.求和:

//递归函数

$num=100;

for($i=1;$i<=$num;$i++){

$sum+=$i;

}



echo  $sum ;

函数的调用顺序

show();



function show(){}



show();





6.php运行顺序

1)载入页面

2)语法检測(1.语法检測 2.载入函数)

3)运行脚本

PHP第四课 了解经常使用的函数的更多相关文章

  1. Kali Linux Web 渗透测试视频教程—第十四课-arp欺骗、嗅探、dns欺骗、session劫持

    Kali Linux Web 渗透测试视频教程—第十四课-arp欺骗.嗅探.dns欺骗.session劫持 文/玄魂 目录 Kali Linux Web 渗透测试—第十四课-arp欺骗.嗅探.dns欺 ...

  2. Kali Linux Web 渗透测试视频教程— 第四课 google hack 实战

    Kali Linux Web 渗透测试— 第四课 google hack 实战 文/玄魂 目录 shellKali Linux Web 渗透测试— 第四课 google hack 实战 课程目录 Go ...

  3. NeHe OpenGL教程 第四十四课:3D光晕

    转自[翻译]NeHe OpenGL 教程 前言 声明,此 NeHe OpenGL教程系列文章由51博客yarin翻译(2010-08-19),本博客为转载并稍加整理与修改.对NeHe的OpenGL管线 ...

  4. NeHe OpenGL教程 第三十四课:地形

    转自[翻译]NeHe OpenGL 教程 前言 声明,此 NeHe OpenGL教程系列文章由51博客yarin翻译(2010-08-19),本博客为转载并稍加整理与修改.对NeHe的OpenGL管线 ...

  5. NeHe OpenGL教程 第二十四课:扩展

    转自[翻译]NeHe OpenGL 教程 前言 声明,此 NeHe OpenGL教程系列文章由51博客yarin翻译(2010-08-19),本博客为转载并稍加整理与修改.对NeHe的OpenGL管线 ...

  6. NeHe OpenGL教程 第十四课:图形字体

    转自[翻译]NeHe OpenGL 教程 前言 声明,此 NeHe OpenGL教程系列文章由51博客yarin翻译(2010-08-19),本博客为转载并稍加整理与修改.对NeHe的OpenGL管线 ...

  7. NeHe OpenGL教程 第四课:旋转

    转自[翻译]NeHe OpenGL 教程 前言 声明,此 NeHe OpenGL教程系列文章由51博客yarin翻译(2010-08-19),本博客为转载并稍加整理与修改.对NeHe的OpenGL管线 ...

  8. 【C语言探险】 第四课的第二部分:串

    内容简单介绍 1.课程大纲 2.第二部分第四课: 字符串 3.第二部分第五课预告: 预处理 课程大纲 我们的课程分为四大部分,每个部分结束后都会有练习题,并会发布答案.还会带大家用C语言编写三个游戏. ...

  9. 【Linux探索之旅】第二部分第四课:文件操纵,鼓掌之中

    内容简介 1.第二部分第四课:文件操纵,鼓掌之中 2.第二部分第五课预告:用户和权限 文件操纵,鼓掌之中 既然上一课我们学习了Linux中的文件组织方式,那么现在就该是玩弄,啊不,是操纵它们的时候了. ...

随机推荐

  1. Xor路

    Xor路 (xor.pas/c/cpp)128MB1s 给定一棵有N个点和N-1条边的树,请你求出树中的最长路径,以及总共有多少条最长路径. 这里路径长度是用xor定义的,即若经过的边的权值为a1, ...

  2. HDU 4328 Cut the cake

    Cut the cake Time Limit: 6000/3000 MS (Java/Others)    Memory Limit: 65536/65536 K (Java/Others)Tota ...

  3. t4-editor使用方法 Visual T4

    原文发布时间为:2011-05-17 -- 来源于本人的百度文章 [由搬家工具导入] http://visualstudiogallery.msdn.microsoft.com/40a887aa-f3 ...

  4. SQL统计,重复字段只算一次

    原文发布时间为:2010-08-07 -- 来源于本人的百度文章 [由搬家工具导入] master数据库为例: COUNT(EXPRESSION)一个字段重复,则只算一次:SELECT COUNT(D ...

  5. VIM使用技巧5

    查找并手动替换.例如有如下一段文字: We' re waiting for content before the site can go live If you are content with th ...

  6. springBoot 打成jar包

    1.一种方式通过cmd 窗口进行打包 配置maven 环境变量 进入到项目中  运行 mvn clean 然后运行mvn package 进行打包 2.通过idea 进行打包 (1)pom 中安装打包 ...

  7. Eclipse 导入项目乱码问题

    1.编码不对 a.对某文件或某工程更改编码: 鼠标移到工程名或文件名,右键->Properties->Resource->Text file enCoding ->更改编码(G ...

  8. KMP算法之我见

    预备谈谈下面这些,可能有补充 KMP算法的用途: KMP算法之前的暴力: KMP算法预备知识与概念: KMP算法模板: KMP算法的习题. 1.KMP算法的用途: 主要用于模式匹配(字符串匹配).给定 ...

  9. Codeforces Round #466 (Div. 2) B. Our Tanya is Crying Out Loud[将n变为1,有两种方式,求最小花费/贪心]

    B. Our Tanya is Crying Out Loud time limit per test 1 second memory limit per test 256 megabytes inp ...

  10. 在delphi中,如何把十进制数转换为十六进制整形数。若用inttohex只能转化为十六进制字符串。

    var b: Byte; s: string;begin s := '31'; //16进制字符串 b := StrToInt('$' + s);end; 不过要注意一点,如果在程序调试时想看b的值, ...