php高级编程-函数-郑阿奇


Posted in PHP onJuly 04, 2011

1.php函数
1.用户自定义函数

function 函数名字([$parameter,[,…]]) 
{ 
//函数代码 
}

注意:函数名不能与系统函数或用户已经定义的函数重名。
$parameter为函数参数,函数一般可以有0个或多个参数,
2.参数的传递
参数是通过值来传递的,例如前面定义func()函数是通过变量$a和$b的值传递的。通过值传递参数不会因为函数内部参数值的变化而改变函数外部的值。
<?php 
function color(&$col) //定义函数color() 
{ 
$col="yellow"; 
} 
$blue="blue"; 
color($blue); //调用函数color(),参数使用变量$blue 
echo $blue; //输出"yellow" 
?>

3.函数变量的作用域
在主程序定义的变量和在函数中定义的变量都是局部变量。在函数中定义的变量只能在函数内部使用。在主程序中定义的变量
只能在主程序中使用,而不能在函数中使用。
<?php 
function sum() 
{ 
$count=2; 
} 
sum(); 
echo $count; 
?>

由于函数中的变量无法作用于函数外部,所以上面运行时出错,提示$count变量未定义。
4.函数的返回值
函数声明时,在函数代码中使用return 语句可以立即结束函数的运行,程序返回到时调用该函数的下一条语句。
<?php 
function my_function($a=1) 
{ 
echo $a; 
return; //结束函数的运行,下面的语句将不被运行 
$a++; 
echo $a; 
} 
my_function(); //输出1 
?>

中断函数并不是return语句常用的功能,许多函数使用return语句返回一个值来与调用它们的代码进行交互。<FONT color=#c0504d>函数的返回值可以是任何类型,包括列表对象</FONT>
5.函数的调用
在函数声明后可以被调用了,另外函数如果没有返回值,调用进使用函数名即可。如果函数具有返回值,则可以将函数的返回值赋给一个变量。
//对一个数组进行升序排序的函数my_sort() 
function my_sort($array) 
{ 
for($i=0;$i<count($array);$i++) 
{ 
for($j=$i+1;$j<count($array);$j++) 
{ 
if($array[$i]>$array[$j]) 
{ 
$tmp=$array[$j]; 
$array[$j]=$array[$i]; 
$array[$i]=$tmp; 
} 
} 
} 
return $array; 
} 
$arr=array(6,4,7,5,9,2); //未排序的数组 
$sort_arr=my_sort($arr); //将排序后的数组赋给$sort_arr 
foreach($sort_arr as $num) 
echo $num; //输出245679 
?>

6.递归函数
php支持递归函数,递归函数就是自己调用自已,可以实现循环的作用。
求10!
例如:
<?php 
function factorial($n) 
{ 
if($n==0) 
return 1; //如果$n为0则返回1 
else 
return $n*factorial($n1); //递归调用,直到$n等于0为止 } 
echo factorial(10); //输出3628800 
?>

使用递归一事实上要给出递归终止条件,否则函数将一直执行下去直到内存耗尽,或达到最大调用次数。
使用递归一事实上要给出递归终止条件,否则函数将一直执行下去直到内存耗尽,或达到最大调用次数。
7.变量函数
php有函数变量这个概念,在变量的后面加上一对小括号就构成一个变量函数。
$count();
8.系统函数
9.实例-设计一个计算器程序
<html> 
<head> 
<title>计算器程序</title> 
</head> 
<body> 
<form method=post> 
<table> 
<tr><td><input type="text" size="4" name="number1"> 
<select name="caculate"> 
<option value="+">+ 
<option value="-">- 
<option value="*">* 
<option value="/">/ 
</select> 
<input type="text" size="4" name="number2"> 
<input type="submit" name="ok" value="计算"> 
</td> 
</tr> 
</table> 
</form> 
</body> 
</html> 
<?php 
function cac($a, $b, $caculate) //定义cac函数,用于计算两个数的结果 
{ 
if($caculate=="+") //如果为加法则相加 
return $a+$b; 
if($caculate=="-") //如果为减法则相减 
return $a-$b; 
if($caculate=="*") //如果为乘法则返回乘积 
return $a*$b; 
if($caculate=="/") 
{ 
if($b=="0") //判断除数是否为0 
echo "除数不能等于0"; 
else 
return $a/$b; //除数不为0则相除 
} 
} 
if(isset($_POST['ok'])) 
{ 
$number1=$_POST['number1']; //得到数1 
$number2=$_POST['number2']; //得到数2 
$caculate=$_POST['caculate']; //得到运算的动作 
//调用is_numeric()函数判断接收到的字符串是否为数字 
if(is_numeric($number1)&&is_numeric($number2)) 
{ 
//调用cac函数计算结果 
$answer=cac($number1,$number2,$caculate); 
echo "<script>alert('".$number1.$caculate.$number2."=".$answer."')</script>"; 
} 
else 
echo "<script>alert('输入的不是数字!')</script>"; 
} 
?>
PHP 相关文章推荐
基于mysql的论坛(3)
Oct 09 PHP
PHP设计模式 注册表模式
Feb 05 PHP
简单的方法让你的后台登录更加安全(php中加session验证)
Aug 22 PHP
IIS安装Apache伪静态插件的具体操作图文
Jul 01 PHP
header导出Excel应用示例
Jan 24 PHP
php内嵌函数用法实例
Mar 20 PHP
PHP中$_SERVER使用说明
Jul 05 PHP
PHP共享内存用法实例分析
Feb 12 PHP
yii2.0实现pathinfo的形式访问的配置方法
Apr 06 PHP
php制作简单模版引擎
Apr 07 PHP
php根据用户名和手机号查询是否存在手机号码
Feb 16 PHP
php设计模式之观察者模式实例详解【星际争霸游戏案例】
Mar 30 PHP
php 日期和时间的处理-郑阿奇(续)
Jul 04 #PHP
php 目录与文件处理-郑阿奇(续)
Jul 04 #PHP
第4章 数据处理-php正则表达式-郑阿奇(续)
Jul 04 #PHP
第4章 数据处理-php字符串的处理-郑阿奇(续)
Jul 04 #PHP
第4章 数据处理-php数组的处理-郑阿奇
Jul 04 #PHP
PHP和Mysqlweb应用开发核心技术 第1部分 Php基础-3 代码组织和重用2
Jul 03 #PHP
PHP和Mysqlweb应用开发核心技术-第1部分 Php基础-2 php语言介绍
Jul 03 #PHP
You might like
实用函数10
2007/11/08 PHP
php页面跳转代码 输入网址跳转到你定义的页面
2013/03/28 PHP
php cli模式学习(PHP命令行模式)
2013/06/03 PHP
PHP多线程批量采集下载美女图片的实现代码(续)
2013/06/03 PHP
PHP curl CURLOPT_RETURNTRANSFER参数的作用使用实例
2015/02/07 PHP
PHP简单实现欧拉函数Euler功能示例
2017/11/06 PHP
PHP抽象类和接口用法实例详解
2019/07/20 PHP
需要做特殊处理的DOM元素属性的访问
2010/11/05 Javascript
基于jquery的一个OutlookBar类,动态创建导航条
2010/11/19 Javascript
仅IE6/7/8中innerHTML返回值忽略英文空格的问题
2011/04/07 Javascript
纯文字版返回顶端的js代码
2013/08/01 Javascript
JS实现跟随鼠标闪烁转动色块的方法
2015/02/26 Javascript
js实现精美的图片跟随鼠标效果实例
2015/05/16 Javascript
JavaScript编程中实现对象封装特性的实例讲解
2016/06/24 Javascript
NodeJS使用formidable实现文件上传
2016/10/27 NodeJs
用jQuery.ajaxSetup实现对请求和响应数据的过滤
2016/12/20 Javascript
JavaScript时间戳与时间日期间相互转换
2017/12/11 Javascript
Vue管理系统前端之组件拆分封装详解
2020/08/23 Javascript
Python异常学习笔记
2015/02/03 Python
Python基于tkinter模块实现的改名小工具示例
2017/07/27 Python
对Python通过pypyodbc访问Access数据库的方法详解
2018/10/27 Python
python basemap 画出经纬度并标定的实例
2019/07/09 Python
python使用writerows写csv文件产生多余空行的处理方法
2019/08/01 Python
Python实现网页截图(PyQT5)过程解析
2019/08/12 Python
python+jinja2实现接口数据批量生成工具
2019/08/28 Python
python内置模块collections知识点总结
2019/12/19 Python
ansible-playbook实现自动部署KVM及安装python3的详细教程
2020/05/11 Python
Python小白学习爬虫常用请求报头
2020/06/03 Python
详细分析Python垃圾回收机制
2020/07/01 Python
使用Python爬虫爬取小红书完完整整的全过程
2021/01/19 Python
英国电动工具购买网站:Anglia Tool Centre
2017/04/25 全球购物
工业自动化毕业生自荐信范文
2014/01/04 职场文书
天鹅的故事教学反思
2014/02/04 职场文书
社区服务理念口号
2015/12/25 职场文书
导游词之杭州西湖
2019/09/19 职场文书
MybatisPlus代码生成器的使用方法详解
2021/06/13 Java/Android