PHP中函数的使用

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

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

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

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

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

 1 <?php
 2 function table($n,$m,$width){
 3     echo ‘<table border="1" width="‘.$width.‘" align="center">‘;
 4     echo ‘<caption><h1>表名</h1></caption>‘;
 5     for($i=0;$i<$n;$i++){
 6         if($i%2==0){
 7             $bg="#ffffff";
 8         }else{
 9             $bg="#cccccc";
10         }
11         echo ‘<tr bgColor="‘.$bg.‘">‘;
12         for($j=0;$j<$m;$j++){
13             echo ‘<td align="center">‘.($i*$m+$j).‘</td>‘;
14         }
15         echo ‘</tr>‘;
16     }
17 }
18
19 table(10,10,600);
20 table(5,5,300);
21 table(2,2,100);
22 ?>

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

 1 <?php
 2 //全局变量
 3 $a=10;
 4 function demo(){
 5     //局部变量b
 6     $b=5;
 7     //通过global关键字将这个全局变量包括到函数中
 8     global $a;
 9     $a+=10;
10     echo $a."demo<br>";
11     echo "b=".$b."<br>";
12 }
13
14 function test(){
15     //因为PHP的变量分不出是声明还是使用,所以这是声明变量$a=5
16     $a+=5;
17     echo $a."test<br>";
18 }
19
20 echo $a."----<br>";
21 demo();
22 echo $a."!!!!<br>";
23 test();
24 echo $a."####<br>";
25 ?>

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

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

 1 <?php
 2 function test(){
 3     //声明变量a为静态变量
 4     static $a=0;
 5     $b=0;
 6
 7     $a++;
 8     $b++;
 9
10     echo "a=".$a."<br>";
11     echo "b=".$b."<br>";
12 }
13
14 test();
15 test();
16 test();
17 ?>

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

 1 <?php
 2 //声明第一个函数one,计算两个数的和,需要两个整型参数,返回计算后的值
 3 function one($a,$b){
 4     return $a+$b;
 5 }
 6
 7 //声明第二个函数two,计算两个数的平方和,需要两个整型参数,返回计算后的值
 8 function two($a,$b){
 9     return $a*$a+$b*$b;
10 }
11
12 //声明第三个函数three,计算两个数的立方和,需要两个整型参数,返回计算后的值。
13 function three($a,$b){
14     return $a*$a*$a+$b*$b*$b;
15 }
16
17 //将函数名‘one’赋值给$result,执行$result()时则调用函数one()
18 $result="one";
19 echo "和为:".$result(3,4)."<br>";
20
21 //将函数名‘two’赋值给$result,执行$result()时则调用函数two()
22 $result="two";
23 echo "平方和为:".$result(3,4)."<br>";
24
25 //将函数名‘three’赋值给$result,执行$result()时则调用函数three()
26 $result="three";
27 echo "立方和为:".$result(3,4)."<br>";
28 ?>

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

 1 <?php
 2 function score($php,$java,$net){
 3     //声明内部函数
 4     function php($php){
 5         if($php>60)
 6             return "及格";
 7         else
 8             return "不及格";
 9     }
10
11     function java($java){
12         if($java>60)
13             return "及格";
14         else
15             return "不及格";
16     }
17
18     function net($net){
19         if($net>60)
20             return "及格";
21         else
22             return "不及格";
23     }
24
25     $total=$php+$java+$net;
26
27     $agv=$total/3;
28
29     echo "你的php成绩是{$php}分".php($php)."<br>";
30     echo "你的java成绩是{$java}分".php($java)."<br>";
31     echo "你的net成绩是{$net}分".php($net)."<br>";
32
33     echo "你的总成绩为:{$total}<br>";
34     echo "你的平均成绩为:{$agv}<br>";
35 }
36
37 score(50,90,70);
38 ?>

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

 1 <?php
 2 function demo($num){
 3     echo $num."<br>";
 4
 5     if($num>0)
 6         demo($num-1);
 7     else
 8         echo "------------<br>";
 9
10     echo $num."<br>";
11 }
12
13 demo(5);
14 ?>

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

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

 1 <?php
 2 //include_once和require_once只包含一次
 3 include_once "test.txt";
 4 include_once "test.txt";
 5 include_once "test.txt";
 6
 7 require "demo.txt";
 8
 9 include_once "test.inc.php";
10 echo "{$a}<br>";
11 test();
12 ?>

test.inc.php

1 <?php
2 $a=10;
3 function test(){
4     echo "########<br>";
5 }
6 ?>

test.txt

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

demo.txt

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

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

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

 1 <?php
 2 function totaldir($dirname,&$dirnum,&$filenum){
 3     $dir=opendir($dirname);
 4     readdir($dir)."<br>";    //读出 . 本文件
 5     readdir($dir)."<br>";    //读出 .. 上一级文件
 6     while($filename=readdir($dir)){
 7         //设为本这个目录下的文件
 8         $newfile=$dirname."/".$filename;
 9
10         //判断是否是目录
11         if(is_dir($newfile)){
12             //递归调用查看所有的文件目录
13             totaldir($newfile,$dirnum,$filenum);
14             $dirnum++;
15         }else{
16             $filenum++;
17         }
18     }
19
20     closedir($dir);
21 }
22
23 $dirnum=0;
24 $filenum=0;
25 totaldir("D:/APMServ5.2.6/www/phpMyAdmin",$dirnum,$filenum);
26
27 echo "目录总数:".$dirnum."<br>";
28 echo "文件总数:".$filenum."<br>";
29 ?>
时间: 2024-10-13 11:37:04

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

对JS中函数的理解

函数本质就是功能的集合 JS中函数是对象,因此,函数名实际上仅仅是一个指向函数对象的指针,不会与某个函数绑定,所以,JS中没有重载(重载就是通过传递不同类型的参数,使两个相同函数名的函数执行不同的功能) var fn=function(a){return a+100;} fn=function(a){return a+200;} alert(fn(100)); //300 要访问函数的引用(指针)而不是执行函数时,必须去掉圆括号,加上圆括号表示访问函数执行后的结果 函数体内部的语句在执行时,一旦

js中函数参数值传递和引用传递

js中函数参数值传递和引用传递:在阅读本章节之前建议参阅一下两章节:1.值类型可以参阅javascript的值类型一章节.2.引用类型可以参阅javascript的引用类型一章节.一.函数传递值类型:代码实例如下: function addNum(num) { num+=10; return num; } var num=10; var result=addNum(num); console.log(num); console.log(result); 以上代码的弹出值分别为:10和20,下面进

javascript中函数作用域之”提升“

javascript中函数作用域之变量提升 当我们在函数内部用关键字var声明一个变量的时候,此变量的作用域限制在当前函数. 提升:在一个作用域内部,不管一个变量用var声明的位置在哪里,这个变量属于当前整个作用域,并且在当前作用域的任何位置都可以访问它.在javascript中,这种行为/现象称之为"提升",即一个变量在一个作用域的任何位置用var声明,javascript引擎都会把这些用var声明的变量"移动"到当前作用域的开始处. 谈到javascript这种

Linux进程的栈和进程中函数的栈帧

主要理解了Linux进程的栈和函数的栈帧的区别和联系 上图中刻画的是一个Linux进程的结构图,其中本文想要关注的栈如上图所示是栈底在0xc0000000地址递减的一块进程内存区域 Linux系统中为每个进程分配的实际大小未做深究 Linux进程的栈的整体认知就是这么多,即 1)栈底在0xc0000000(并不需要栈底指针,函数的栈帧才需要栈底指针) 2)栈的增长方向,地址递减方向 3)栈顶指针esp 4)大小未知(不是本文关注的重点) 5)里面存放的内容是什么呢? 另一个概念是上文中提到的函数

C语言中函数和指针的参数传递

最近写二叉树的数据结构实验,想用一个没有返回值的函数来创建一个树,发现这个树就是建立不起来,那么我就用这个例子讨论一下c语言中指针作为形参的函数中传递中隐藏的东西. 大家知道C++中有引用的概念,两个数据引用同一个数据,那么更改任意的一个都相当于更改了本体,那么另一个数据所对应的值也会改变,可是C中是没有这个概念的.所以就产生了一些东西.和我们本来想的有差别. 一.明确C语言中函数的入口: C语言中函数的形参负责接收外部数据,那么数据究竟怎么进入函数的呢,其实我们在函数体内操作的形参只是传递进来

从头开始-05.C语言中函数

函数: 完成特定功能代码段 特点:函数只有调用的时候才会执行 定义格式:返回值类型 函数名称(形参类型 形参名称,...){ 语句; ...  } 函数参数 形式参数:在定义函数的时候,函数名后面小括号中的参数 实际参数:在函数调用的时候,函数名后面小括号中的参数 注意点: 形参与实参必须一一对应 实参与形参的类型必须一致 基本数据类型作为函数参数传递是值传递 组作为函数参数传递是地址传递 指针作为函数参数传递是地址传递 结构体作为函数参数传递是值传递 返回值: return 作用: 1.结束函

Go - 反射中 函数 和 方法 的调用

上一篇文章 说到了 Golang 中的反射的一些基本规则,重点就是文章中最后的三点,但是这篇文章并没有说如何在反射中调用函数和方法,这就是接下来要说的. 反射中调用 函数 众所周知,Golang 中的函数是可以像普通的 int.float 等类型变量那样作为值的,例如: package main import "fmt" func hello() { fmt.Println("Hello world!") } func main() { hl := hello hl

Javascript中函数的四种调用方式

一.Javascript中函数的几个基本知识点: 1.函数的名字只是一个指向函数的指针,所以即使在不同的执行环境,即不同对象调用这个函数,这个函数指向的仍然是同一个函数. 2.函数中有两个特殊的内部属性:arguments和this. arguments主要是用来保存函数参数,arguments中的callee属性主要是用来指向拥有当前arguments的函数(理解Javascript参数中的arguments对象). 3.在ECMAScript5中规范了另一个函数属性:caller(Opera

javascript中函数浅析

在脚本语言JavaScript中,函数的定义是由事件驱动或者当它被调用时可重复使用的代码块.在JavaScript的标准ECMAscript中,把函数表述为可以随时随地运行的语句.我个人是不认同ECMA的说法的,因为函数只有在发生调用的时候才会执行,否则就是一段毫无生气的代码.我们来具体认识认识函数. (一)首先是函数的定义: 在ECMAscript函数的定义是 关键字function 函数名( 参数){主体:return(返回值)};这四部分组成的,但是在脚本语言中函数的定义却分为三种方式定义

【学神-RHEL7】P7-Python中函数的使用

本节所讲内容:   Python 函数的使用   7.1 函数是在程序中用一种特定的格式,把一些代码封装起来,定义一个名称,然后可以在程序的任何地方通过调用此函数名来执行函数里的那组命令   使用函数的好处 1)程序可扩展性 2)减少程序代码 3)方便程序架构的更改   7.1.1       定义函数   语法格式 def  函数名(参数):        函数语句   注:在def语句中函数名后面的变量通常叫做函数的形参,而调用函数时提供的值是实参,或者称为参数.一般将实参称为"值"