PHP中函数的使用
函数是一种可以在任何被需要的时候执行的代码块
函数的定义
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中函数的使用的更多相关文章
- 如何理解javaSript中函数的参数是按值传递
本文是我基于红宝书<Javascript高级程序设计>中的第四章,4.1.3传递参数小节P70,进一步理解javaSript中函数的参数,当传递的参数是对象时的传递方式. (结合资料的个人 ...
- Swift3中函数的使用
前言:前不久,Swift语言也更新到了3.0版本,对编程有一定基础的朋友一定不会对函数这个概念陌生.而Swift语言中的函数也是大同小异的,今天就跟着小编来学习一下Swift3中函数的不一样的用法. ...
- JavaScript中函数函数的定义与变量的声明<基础知识一>
1.JavaScript中函数的三种构造方式 a.function createFun(){ } b.var createFun=function (){ } c.var createFun=new ...
- oracle中函数和存储过程的区别和联系【转载竹沥半夏】
oracle中函数和存储过程的区别和联系[转载竹沥半夏] 在oracle中,函数和存储过程是经常使用到的,他们的语法中有很多相似的地方,但也有自己的特点.刚学完函数和存储过程,下面来和大家分享一下自己 ...
- string.h文件中函数用法
下面为string.h文件中函数的详细用法: strcpy函数名:strcpy功 能: 拷贝一个字符串到另一个用 法: char *strcpy(char *destin, char *source) ...
- 三种语言(c++、as、lua)中函数的差异性
对于不同的语言, 尤其是静态语言和动态语言, 对于函数的定义(即如何看待一个函数)和处理截然不同.具体来说可以分为两类: 1.将函数视为第一类型值, 即函数和其他的对象一样, 都是语言中一个普通的对象 ...
- C/C++中函数参数传递详解(二)
昨天看了内存管理的有关内容,有一点了解,但不是很深入,发现之前写代码时有很多细节问题没有注意到,只知道这样做可以实现功能,却不知道为什么可以这样,对于采用自己的方法造成的隐患也未知,更不晓得还有其他方 ...
- 动态链接库中函数的地址确定---PLT和GOT [转]
前面写过动态链接库 延迟绑定的一篇博文,那篇文章我非常喜欢,但是当时刚搞清楚,自己写的比较凌乱,我最近学习了Ulrich Drepper的How to write share library,学习了几 ...
- Javascript中函数的四种调用方式
一.Javascript中函数的几个基本知识点: 1.函数的名字只是一个指向函数的指针,所以即使在不同的执行环境,即不同对象调用这个函数,这个函数指向的仍然是同一个函数. 2.函数中有两个特殊的内部属 ...
- JavaScript中函数的形参和实参的实现原理剖析
我们都知道JS里面参数的传递是可以不一样的,比如我们有一个函数: <script type="text/javascript"> function one(a,b,c) ...
随机推荐
- 1029c语言文法
<程序>→<外部声明>|<程序><外部声明> <外部声明>→<函数定义>|<声明> <函数定义>→< ...
- Core Data系列文章(一)Core Data基础
在iOS开发数据库SQLite的使用介绍了iOS中使用SQLite对数据进行持久化存储,实际上是对数据库直接进行操作,而苹果专门有一套API来间接的对数据进行持久化存储,而且主要针对用户创建的对象 - ...
- content.boundingRectWithSize计算出来的高度不准
计算出来的高度会少一行的高度,最后一行会显示不全.减掉padding会解决这个问题. let padding = self.reviewText.textContainer.lineFragm ...
- poj2676 Sudoku(DFS)
做了很久还是参考了别人的答案orz,其实也不难啊.我要开始学一下怎么写搜索了... 题目链接:poj2676 Sudoku 题解:暴力搜索,DFS每个空白格子所放数字. #include<cst ...
- HTML:表格与表单
一.图片热点:规划出图片上的一个区域,可以做出超链接,直接点击图片区域就可以完成跳转的效果. <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 ...
- OpenGL基础图形编程
一.OpenGL与3D图形世界1.1.OpenGL使人们进入三维图形世界 我们生活在一个充满三维物体的三维世界中,为了使计算机能精确地再现这些物体,我们必须能在三维空间描绘这些物体.我们又生活在一个充 ...
- Spring学习(一)——Spring中的依赖注入简介【转】
[前面的话] Spring对我太重要了,做个关于web相关的项目都要使用Spring,每次去看Spring相关的知识,总是感觉一知半解,没有很好的系统去学习一下,现在抽点时间学习一下Spring. ...
- 随机分类器的ROC和Precision-recall曲线
随机分类器,也就是对于一个分类问题,随机猜测答案.理论上,随机分类器的性能是所有分类器的下界.对随机分类器的理解,可以帮助更好的理解分类器的性能指标.随机分类器的性能也可以作为评价分类器的一个基础.所 ...
- 使用Linq快速的操作XML
开始内容之前先分享一段话 有时候,当你知道要做什么的时候就做的很快,比如你要实现个功能,码字的活儿不算很难,做个检索也不会有什么难倒你的.但是,做着做着,你发现好像世界上的工作都在重复,于是你有种心要 ...
- Junit4的简单使用
junit4的简单使用 测试套件的使用 测试类1 package com.westward; import static org.junit.Assert.*; import org.junit.Te ...