php从入门到精通 php从入门到精通PHP是什么php环境搭建php echo/print 打印输出PHP date()函数:日期和时间PHP语法PHP 变量PHP 常用数据类型PHP常量PHP运算符PHP if语句PHP Switch语句PHP for和foreach 循环PHP while 循环PHP退出循环PHP 函数PHP 类与对象PHP命名空间PHP超全局变量PHP 表单 PHP表单提交PHP 表单验证PHP 日常操作 PHP多维数组PHP Include和require用法PHP 打开/读取/输出/关闭文件PHP 创建/写入文件PHP 上传文件PHP 复制/移动/删除文件PHP判断目录文件是否存在PHP获取文件属性和权限PHP cookiePHP Sessionphp socketPHP Mysql数据库 创建/选择/删除Mysql数据库创建/删除Mysql数据表修改/重命名Mysql数据表Mysql数据管理PHP 连接MySQL数据库PHP 创建MySQL数据库PHP创建Mysql数据表PHP插入Mysql数据PHP查询Mysql数据PHP MySQL Order By排序PHP MySQL UPDATE更新数据PHP MySQL Delete删除数据

PHP 函数

PHP函数

函数是可以在程序中重复使用的语句块,PHP中提供了超过1000个内建的函数,也可创建自己的函数。

语法:

function 函数名(参数1, 参数2, /* ..., */ 参数N)

{

    要执行的代码;

}

案例1:

<?php
function myfunction()
{
    echo "张三";
}
 
echo "我的名字是";
myfunction();// 调用函数
?>

结果:

我的名字是张三

PHP函数参数

PHP 还允许使用数组 array 和特殊类型 NULL 作为默认参数。

案例2

<?php
function myfunction($fname) {
  echo "$fname 姓张<br>";//一个参数
}
function mycanshu($name,$sex="未知") {
  echo $name."性别是".$sex."<br>";//使用两个参数
}
function myarray($arr) {
  echo $arr[0]."性别是".$arr[1]."<br>";//使用数组
}
myfunction("张三");
mycanshu("李四");      //这里缺少第二参数则使用默认参数
mycanshu("陈五","男"); //这不使用默认参数
myarray(array("李六","女")); 
?>

结果:

张三 姓张

李四性别是未知

陈五性别是男

李六性别是女

PHP函数调用

函数无需在调用之前被定义,除非是下面两个例子中函数是有条件被定义时

案例3:

<?php
header("content-type:text/html;charset=utf-8");         //设置编码

$condition = true;

/* 不能在此处调用fun()函数,
   因为它还不存在,但可以调用bar()函数。*/

bar();//这是一般调用

if ($condition) {
  function fun()
  {
    echo "在程序执行到达我之前我是不存在的</br>";
  }
}

/* 现在可以调用函数 fun()了,
   因为 $condition 值为真 */

if ($condition) fun();

function bar()
{
  echo "我在程序执行时就存在了</br>"; 
}
bar();//这是一般调用
?>

结果:

我在程序执行时就存在了
在程序执行到达我之前我是不存在的
我在程序执行时就存在了

PHP函数返回值

如果省略了 return,则返回值为 NULL。函数不能返回多个值,但可以通过返回一个数组来得到类似的效果,可以返回包括数组和对象的任意类型。

案例:

<?php
function nums()
{
    return array (1, 2, 3);
}
var_dump(nums());
?>

结果:

array(3) {  [0]=>  int(1)  [1]=>  int(2)  [2]=>  int(3) }

PHP可变函数

改变函数是通过改变函数的值从而改变要调用的函数,PHP 将寻找与变量的值同名的函数,方法是变量名后有圆括号,方法、属性、常量义可改变。

可变函数不能用于例如 echo,print,unset(),isset(),empty(),include,require 以及类似的语言结构。需要使用自己的包装函数来将这些结构用作可变函数。

案例:

<?php
header("content-type:text/html;charset=utf-8");         //设置编码
function funone() {
    echo "我是funone()<br />\n";
}

function funtwo($cs = '') {
    echo "我是funtwo(); 参数是'$cs'.<br />\n";
}

// 使用 echo 的包装函数
function funthree($cs)
{
    echo $cs;
}

$funone = 'funone';
$funone();        //调用funone()

$funtwo = 'funtwo';
$funtwo('canshu');  //调用funtwo()

$funthree = 'funthree';
$funthree('canshu');  //调用funthree()
?>

结果:

我是funone()

我是funtwo(); 参数是'canshu'.

canshu

PHP匿名函数

PHP从 5.3 开始支持匿名函数,直接function加圆括号赋值给变量

语法:

$变量名 = function(参数){

   要执行代码;

};

案例:

<?php
$fun = function($arg){
    echo $arg;
};//注意匿名函数必须以;结尾。

var_dump($fun);
echo '<br>';
$fun('我是匿名函数!');
?>

结果:

object(Closure)#1 (1) {  ["parameter"]=>  array(1) {    ["$arg"]=>    string(10) ""  } }
我是匿名函数!