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

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>";
}
?>

时间: 2024-08-08 12:08:13

php高级编程-函数-郑阿奇的相关文章

php高级编程-函数-郑阿奇_php基础

1.php函数 1.用户自定义函数 复制代码 代码如下: function 函数名字([$parameter,[,-]]) { //函数代码 } 注意:函数名不能与系统函数或用户已经定义的函数重名. $parameter为函数参数,函数一般可以有0个或多个参数, 2.参数的传递 参数是通过值来传递的,例如前面定义func()函数是通过变量$a和$b的值传递的.通过值传递参数不会因为函数内部参数值的变化而改变函数外部的值. 复制代码 代码如下: <?php function color(&$c

C# 编写的com(按照C#高级编程中的方法写了所谓的连接点) c++如何将函数与事件关联起来 ?? 高手请进..........

问题描述 C#代码:是按照<C#高级编程>中的方法写的下面的IEvent接口里的方法名与后面的Class1中的事件名相同...而且Class1有特性[ComSourceInterfaces(typeof(IEvent))]据书上说这样就可以供C++来连接了.我想的就是C++写好一个函数然后这个函数就是Class1中的事件LoginOk的处理函数就和C#里用LoginOk+=....一样.但是我就是不明白怎么把C++的方法和这个Class1的事件联系起来而且这个IEvent也完全没用到...us

php 日期和时间的处理-郑阿奇(续)_php基础

1.UNIX时间戳 phpd 处理数据,特别是对数据库中时间类型数据进行格式化时,需先将时间类型的数据转化为UNIX时间戳进行处理.不同的数据库系统对时间类型的数据 不能兼容 转换,这时就需要将时间转化为UNIX时间戳.这样京实现了不同数据库系统的跨平台性. 2.时间转化为时间戳 如果要将用字符串表达的日期和时间转化为时间戳的形式,可以使用strtotime()函数. 语法格式如下: int strtotime(string $time [, int $now ]) 例如: 复制代码 代码如下:

php 日期和时间的处理-郑阿奇(续)

1.UNIX时间戳 phpd 处理数据,特别是对数据库中时间类型数据进行格式化时,需先将时间类型的数据转化为UNIX时间戳进行处理.不同的数据库系统对时间类型的数据 不能兼容 转换,这时就需要将时间转化为UNIX时间戳.这样京实现了不同数据库系统的跨平台性. 2.时间转化为时间戳 如果要将用字符串表达的日期和时间转化为时间戳的形式,可以使用strtotime()函数. 语法格式如下: int strtotime(string $time [, int $now ]) 例如: 复制代码 代码如下:

UNIX环境高级编程:线程同步之互斥锁、读写锁和条件变量

一.使用互斥锁 1.初始化互斥量 pthread_mutex_t mutex =PTHREAD_MUTEX_INITIALIZER;//静态初始化互斥量 int pthread_mutex_init(pthread_mutex_t*mutex,pthread_mutexattr_t*attr);//动态初始化互斥量 int pthread_mutex_destory(pthread_mutex_t*mutex);//撤销互斥量 不能拷贝互斥量变量,但可以拷贝指向互斥量的指针,这样就可以使多个函数

UNIX环境高级编程:线程属性之并发度

并发度控制着用户级线程可以映射的内核线程或进程的数目.如果操作系统的实现在内核级的线程和用户级的线程之间保持一对一的映射,那么改变并发度并不会有什么效果,因为所有的用户级线程都可能被调度到.但是,如果操作系统的实现让用户级线程到内核级线程或进程之间的映射关系是多对一的话,那么在给定时间内增加可运行的用户级线程数,可能会改善性能. pthread_setconcurrency函数可以用于提示系统,表明希望的并发度. #include <pthread.h> int pthread_getconc

UNIX环境高级编程:pthread_create的问题

linux 下常用的创建多线程函数pthread_create(pthread_t * thread , pthread_attr_t * attr , void *(*start_routine)(void*) , void *args); 其中第一个参数用来保存线程信息,第二个参数指新线程的运行属性,可以设置为NULL,第三个参数为自定义的线程函数,第四个参数就是线程函数需要用到的参数,一般如果要传递多个参数,可以设置为结构体(struct)类型,这里我们使用int类型的变量.   下面我着

UNIX环境高级编程:线程同步之互斥量

互斥量(也称为互斥锁)出自POSIX线程标准,可以用来同步同一进程中的各个线程.当然如果一个互斥量存放在多个进程共享的某个内存区中,那么还可以通过互斥量来进行进程间的同步. 互斥量,从字面上就可以知道是相互排斥的意思,它是最基本的同步工具,用于保护临界区(共享资源),以保证在任何时刻只有一个线程能够访问共享的资源. 互斥量类型声明为pthread_mutex_t数据类型,在<bits/pthreadtypes.h>中有具体的定义. 1互斥量初始化和销毁 #include <pthread

UNIX环境高级编程:符号链接

符号链接是指向一个文件的间接指针.他与上一节所诉的硬链接不同.硬链接直接指向文件的i节点.引入 符号链接的原因是为了避开硬链接的一些限制. 硬链接通常要求链接和文件位于同一文件系统中. 只有超级用户才能创建指向目录的硬链接. 对符号链接以及他指向何种对象并无任何文件系统限制.任何用户都可以创建指向目录的符号链接.符号 链接一般用于将一个文件或这个目录结构移动到系统中的另一个位置. 当使用以名字引用文件的函数 的时候,应当了解该函数是否处理符号链接.也就是该函数是否跟随符号链接到达它锁链节的文件.