网络编程 
首页 > 网络编程 > 浏览文章

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

(编辑:jimmy 日期: 2024/11/30 浏览:3 次 )
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"codetitle">复制代码 代码如下:
<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>";
}
?>
上一篇:ajax 的post方法实例(带循环)
下一篇:php 日期和时间的处理-郑阿奇(续)
一句话新闻
微软与英特尔等合作伙伴联合定义“AI PC”:键盘需配有Copilot物理按键
几个月来,英特尔、微软、AMD和其它厂商都在共同推动“AI PC”的想法,朝着更多的AI功能迈进。在近日,英特尔在台北举行的开发者活动中,也宣布了关于AI PC加速计划、新的PC开发者计划和独立硬件供应商计划。
在此次发布会上,英特尔还发布了全新的全新的酷睿Ultra Meteor Lake NUC开发套件,以及联合微软等合作伙伴联合定义“AI PC”的定义标准。
友情链接:杰晶网络 DDR爱好者之家 南强小屋 黑松山资源网 白云城资源网 网站地图 SiteMap