函数是一种可以在任何被需要的时候执行的代码块
函数的定义
    1.函数是一个被命名的独立的代码段
    2.它执行特殊的任务
    3.并可以给调用它的程序返回值

函数的优点:
    1.提高程序的重用性
    2.提高程序的可维护性
    3.可以提高软件的开发效率
    4.提高软件的可靠性
    5.控制程序的复杂性

创建 PHP 函数:
    1.所有的函数都使用关键词 "function()" 来开始
    2.命名函数 - 函数的名称应该提示出它的功能。函数名称以字母或下划线开头。
    3.添加 "{" - 开口的花括号之后的部分是函数的代码。
    4.插入函数代码
    5.添加一个 "}" - 函数通过关闭花括号来结束。

function 函数名(){
    
    }
    function 函数名(参数1,参数2.........){
    
    }

一.函数必须调用才能执行,可以在声明之前调用,也可以在声明之后调用
二.函数名命名和变量一样
三.函数在声明时不能重名
四.可以通过向函数传递参数,改变函数的行为
    形参:就在声明函数时,声明的参数,参数就是变量,多个参数用逗号分开
    实参:调用函数时传给形参数值(数据,也可以是变量)
五.如果没有返回值则称为过程
六.通过使用return语句返回数据
七.函数执行return语句就结束,所以不要在这个语句后写代码

 <?php
 function table($n,$m,$width){
     echo '<table border="1" width="'.$width.'" align="center">';
     echo '<caption><h1>表名</h1></caption>';
     for($i=0;$i<$n;$i++){
         if($i%2==0){
             $bg="#ffffff";
         }else{
             $bg="#cccccc";
         }
         echo '<tr bgColor="'.$bg.'">';
         for($j=0;$j<$m;$j++){
             echo '<td align="center">'.($i*$m+$j).'</td>';
         }
         echo '</tr>';
     }
 }

 table(10,10,600);
 table(5,5,300);
 table(2,2,100);
 ?>

PHP的变量的范围
    局部变量:在函数中声明的变量就是局部变量,只能在自己的函数内部使用。
    全局变量:在函数外声明,在变量声明以后的,直到整个脚本结束前都可以使用,包括在函数中和{}中都可以使用。
    
    PHP的变量分不出是声明还是使用
    在PHP中使用全局变量要通过global关键字将这个全局变量包括到函数中才能使用到。
    参数就是局部变量,这个局部变量可以调用时去赋值

 <?php
 //全局变量
 $a=10;
 function demo(){
     //局部变量b
     $b=5;
     //通过global关键字将这个全局变量包括到函数中
     global $a;
     $a+=10;
     echo $a."demo<br>";
     echo "b=".$b."<br>";
 }

 function test(){
     //因为PHP的变量分不出是声明还是使用,所以这是声明变量$a=5
     $a+=5;
     echo $a."test<br>";
 }

 echo $a."----<br>";
 demo();
 echo $a."!!!!<br>";
 test();
 echo $a."####<br>";
 ?>

PHP的静态变量
    静态变量只能声明在函数中(类中),不能在全局声明。
    使用static在变量前。

作用:一个变量可以在同一个函数在多次调用中同用。
        1.静态变量在静态代码段中保存。
        2.一个函数多次调用之间共用,但只在第一次调用函数时声明到内存,以后再调用,就不再声明,而是直接使用。

 <?php
 function test(){
     //声明变量a为静态变量
     static $a=0;
     $b=0;

     $a++;
     $b++;

     echo "a=".$a."<br>";
     echo "b=".$b."<br>";
 }

 test();
 test();
 test();
 ?>

变量函数(可变函数):如果一个变量后面有圆括号,PHP就将寻找与变量值同名的函数,并且将尝试执行它。这样就可以将不同的函数名称赋给同一个变量,赋给变量哪个函数名,在程序中使用变量名并在后面加上圆括号时,就调用哪个函数执行。

 <?php
 //声明第一个函数one,计算两个数的和,需要两个整型参数,返回计算后的值
 function one($a,$b){
     return $a+$b;
 }

 //声明第二个函数two,计算两个数的平方和,需要两个整型参数,返回计算后的值
 function two($a,$b){
     return $a*$a+$b*$b;
 }

 //声明第三个函数three,计算两个数的立方和,需要两个整型参数,返回计算后的值。
 function three($a,$b){
     return $a*$a*$a+$b*$b*$b;
 }

 //将函数名‘one’赋值给$result,执行$result()时则调用函数one()
 $result="one";
 echo "和为:".$result(3,4)."<br>";

 //将函数名‘two’赋值给$result,执行$result()时则调用函数two()
 $result="two";
 echo "平方和为:".$result(3,4)."<br>";

 //将函数名‘three’赋值给$result,执行$result()时则调用函数three()
 $result="three";
 echo "立方和为:".$result(3,4)."<br>";
 ?>

内部函数:  PHP可以在函数内部再声明函数。
              目的就是在函数的内部调用
              就是用来帮助外部函数完成一些子功能的

 <?php
 function score($php,$java,$net){
     //声明内部函数
     function php($php){
         if($php>60)
             return "及格";
         else
             return "不及格";
     }

     function java($java){
         if($java>60)
             return "及格";
         else
             return "不及格";
     }

     function net($net){
         if($net>60)
             return "及格";
         else
             return "不及格";
     }

     $total=$php+$java+$net;

     $agv=$total/3;

     echo "你的php成绩是{$php}分".php($php)."<br>";
     echo "你的java成绩是{$java}分".php($java)."<br>";
     echo "你的net成绩是{$net}分".php($net)."<br>";

     echo "你的总成绩为:{$total}<br>";
     echo "你的平均成绩为:{$agv}<br>";
 }

 score(50,90,70);
 ?>

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

 <?php
 function demo($num){
     echo $num."<br>";

     if($num>0)
         demo($num-1);
     else
         echo "------------<br>";

     echo $num."<br>";
 }

 demo(5);
 ?>

重用函数:使用自己定义的函数库
    require:用于静态包含
    include:用于动态包含
    require_once
    include_once

include(文件名);
    include"文件名";

 <?php
 //include_once和require_once只包含一次
 include_once "test.txt";
 include_once "test.txt";
 include_once "test.txt";

 require "demo.txt";

 include_once "test.inc.php";
 echo "{$a}<br>";
 test();
 ?>

test.inc.php

 <?php
 $a=10;
 function test(){
     echo "########<br>";
 }
 ?>

test.txt

aaaaaa<br>
bbbbbb<br>
cccccc<br>

demo.txt

11111<br>
22222<br>
33333<br>

一些系统含糊的使用
资源=opendir("目录名")     //打开目录
readdir(资源)            //读取目录

//判断是不是文件
is_dir(文件)

 <?php
 function totaldir($dirname,&$dirnum,&$filenum){
     $dir=opendir($dirname);
     readdir($dir)."<br>";    //读出 . 本文件
     readdir($dir)."<br>";    //读出 .. 上一级文件
     while($filename=readdir($dir)){
         //设为本这个目录下的文件
         $newfile=$dirname."/".$filename;

         //判断是否是目录
         if(is_dir($newfile)){
             //递归调用查看所有的文件目录
             totaldir($newfile,$dirnum,$filenum);
             $dirnum++;
         }else{
             $filenum++;
         }
     }

     closedir($dir);
 }

 $dirnum=0;
 $filenum=0;
 totaldir("D:/APMServ5.2.6/www/phpMyAdmin",$dirnum,$filenum);

 echo "目录总数:".$dirnum."<br>";
 echo "文件总数:".$filenum."<br>";
 ?>

PHP中函数的使用的更多相关文章

  1. 如何理解javaSript中函数的参数是按值传递

    本文是我基于红宝书<Javascript高级程序设计>中的第四章,4.1.3传递参数小节P70,进一步理解javaSript中函数的参数,当传递的参数是对象时的传递方式. (结合资料的个人 ...

  2. Swift3中函数的使用

    前言:前不久,Swift语言也更新到了3.0版本,对编程有一定基础的朋友一定不会对函数这个概念陌生.而Swift语言中的函数也是大同小异的,今天就跟着小编来学习一下Swift3中函数的不一样的用法. ...

  3. JavaScript中函数函数的定义与变量的声明<基础知识一>

    1.JavaScript中函数的三种构造方式 a.function createFun(){ } b.var createFun=function (){ } c.var createFun=new ...

  4. oracle中函数和存储过程的区别和联系【转载竹沥半夏】

    oracle中函数和存储过程的区别和联系[转载竹沥半夏] 在oracle中,函数和存储过程是经常使用到的,他们的语法中有很多相似的地方,但也有自己的特点.刚学完函数和存储过程,下面来和大家分享一下自己 ...

  5. string.h文件中函数用法

    下面为string.h文件中函数的详细用法: strcpy函数名:strcpy功 能: 拷贝一个字符串到另一个用 法: char *strcpy(char *destin, char *source) ...

  6. 三种语言(c++、as、lua)中函数的差异性

    对于不同的语言, 尤其是静态语言和动态语言, 对于函数的定义(即如何看待一个函数)和处理截然不同.具体来说可以分为两类: 1.将函数视为第一类型值, 即函数和其他的对象一样, 都是语言中一个普通的对象 ...

  7. C/C++中函数参数传递详解(二)

    昨天看了内存管理的有关内容,有一点了解,但不是很深入,发现之前写代码时有很多细节问题没有注意到,只知道这样做可以实现功能,却不知道为什么可以这样,对于采用自己的方法造成的隐患也未知,更不晓得还有其他方 ...

  8. 动态链接库中函数的地址确定---PLT和GOT [转]

    前面写过动态链接库 延迟绑定的一篇博文,那篇文章我非常喜欢,但是当时刚搞清楚,自己写的比较凌乱,我最近学习了Ulrich Drepper的How to write share library,学习了几 ...

  9. Javascript中函数的四种调用方式

    一.Javascript中函数的几个基本知识点: 1.函数的名字只是一个指向函数的指针,所以即使在不同的执行环境,即不同对象调用这个函数,这个函数指向的仍然是同一个函数. 2.函数中有两个特殊的内部属 ...

  10. JavaScript中函数的形参和实参的实现原理剖析

    我们都知道JS里面参数的传递是可以不一样的,比如我们有一个函数: <script type="text/javascript"> function one(a,b,c) ...

随机推荐

  1. [Hadoop 周边] 浅谈大数据(hadoop)和移动开发(Android、IOS)开发前景【转】

    原文链接:http://www.d1net.com/bigdata/news/345893.html 先简单的做个自我介绍,我是云6期的,黑马相比其它培训机构的好偶就不在这里说,想比大家都比我清楚: ...

  2. python中Url链接编码处理(urlencode,urldecode)

    做完了flask-web应用,这几天想用爬虫做个好玩的电影链接整合器,平时找电影都是在dytt或者dy2018之类的网站,在用dytt搜索电影<美国队长时>,发现他的搜索链接是这样的:ht ...

  3. eclipse hibernate 插件测试1

    今天先测试了hibernate tools 安装 在eclipse marketplace里面搜索 hibernate tools 就能找到 网上很多文章所说的使用 install new softw ...

  4. HTML第二部分 CSS样式表

    CSS(cascading style sheets,层叠样式表),作用是美化HTML网页. /*注释*/   注释语法 2.1 样式表的基本概念 2.1.1样式表的分类 1.内联样式表 和HTML联 ...

  5. C++的vector学习abc

    开始学习和使用vector了,用到之后再去学似乎神迹的感觉啊,就像跑一下就能给个糖吃哈哈 百度上的六种初始化的方法就不再说了,那些方法都很对. 如果没有值初始化,系统会自行初始化,目前我遇到的是用脚标 ...

  6. BZOJ3996 [TJOI2015]线性代数

    就是求$D = A \times B \times A^T - C \times A^T$ 展开也就是$$D = \sum_{i, j} A_i * A_j * B_{i, j} - \sum_{i} ...

  7. 在现有 SharePoint 服务器上安装 PowerPivot for SharePoint

    步骤1: 检查 SQL Server 2008 R2 Analysis Services 实例的“程序”文件夹.如果您找到了现有安装或之前安装的证据,则执行剩余步骤.否则,直接执行步骤 2:安装 Po ...

  8. Htmlhelper—CheckBox自动生成两个input

    前言 在之前的一篇文章中小猪分享了Htmlhelper的用法.其中有意思的一个就是Checkbox,有必要单独拿出来讲一讲. Htmlhelper—CheckBox 细心的读者一定发现了当使用类似语法 ...

  9. 为什么你总是学不好Linux技术?这是我的答案。

    摘要: 我们为什么要学习Linux,最近几年Linux发展迅速,特别服务器领域,带来了很多新技术,云计算,虚拟化,大数据等技术,还有安全方面都有了很大的发展同时也给了Linux运维工作带来了,更多的要 ...

  10. 实现js中的重载

    重载是面向对象语言里很重要的一个特性,JS中没有真正的重载,是模拟出来的(因为js是基于对象的编程语言,不是纯面向对象的,它没有真正的多态:如继承.重载.重写) 一.什么时候用重载? 举例: func ...