标准函数
标准函数为系统内置函数,PHP发行包中有1000多种内置函数。我们常用的:echo、MD5、print_r…等等.
自定义函数
创建函数,function()
:
<?php
function functionName(){
echo '这是一个无参数无返回的自定函数';
//无参数表示函数名括号内是空的,无返回指函数程序里没有`return`
}
?>
函数不能直接使用,需要进行调用才能执行。
调用函数:
<?php
functionName();
?>
函数名命名:
1、不能和已有函数名重名;
2、只能包含字母、数字和下划线;
3、函数名不能以数字开头。
包含参数无返回的函数及调用:
<?php
function functionArea($radius){
$area = $radius*$radius*pi();
echo $area;
}
functionArea(10);
?>
包含参数有返回的函数及调用(以后会常用):
<?php
function functionArea($radius){
$area = $radius*$radius*pi();
return $area;
}
//调用
//这样大大提高了函数的灵活性
//functionArea(20);整体就得到一个值在内存里。
echo functionArea(10);//这样也行
echo 'r为20的面积为:'.functionArea(20);//这样也可以,调用的时候想怎么调用都行,函数方法固定不需要触碰。
?>
包含参数有返回的函数调用:使用return()语句可以向函数调用者返回任意确定值,将程序控制权返回到调用者作用域。
包含默认参数的函数调用:可以为输入参数指定默认值,在没有提供其他值的情况下,就会把这个默认值自动赋给该参数。
<?php
function functionArea($radius=10){
$area = $radius*$radius*pi();
return $area;
echo '面积为:'.functionArea(20);
}
//这个$radius=10,这里的10表示参数的默认值
//而调用的时候传参是20,所以20会覆盖10,最终输出的结果是20的结果而不是10。
返回多个值的函数调用:
<?php
function functionInfo($name,$age,$job){
$userinfo = array($name,$age,$job);//追加的方式,较常用
return $userinfo;
}
//调用
//`list()`函数把数组的值赋给相应的变量
//函数内的变量和函数外的变量没有任何关联,所以重名也没关系
list($name,$age,$job) = functionInfo('张三','25','PHP');
echo $name.'今年'.$age.'岁了,目前是个'.$job;
?>
注意:函数调用是不区分大小写的。
创建自己的函数库
通常将函数集文件放在library
文件夹里,然后通过文件调用即可。文件名约定促成可以取名为tool.library.php
,tool
可以根据情况来设定,后面两个照抄。
文件包含
通常把功能组件隔离为单独的文件,然后在需要时重新组装,PHP提供四种在应用程序中包含文件的语句:
include()
:将在其被调用的位置判断并包含一个文件。包含一个文件,与在该语句所在位置复制该文件的数据具有相同的结果。
include_once()
:作用与include()
同,不过它会首先验证是否已经包含了该文件,如果包含了该文件则不再执行include_once()
。
require()
:很大程度与include()
相同。都是将一个模板文件包含到require()调用所在的位置。
require_once()
:作用与require()
相同, 不过require_once()
函数确保文件只包含一次。
魔法常量
__FILE__
:当前文件名
__LINE__
:当前行号
__FUNCTION__
:当前函数名
__CLASS__
:当前类名
__METHOD__
:当前方法名
这里的常量其实一个 值,并非define
。
$file = __FILE__;
echo $file;
一般包含文件的时候,建议采用__FILE__
这样速度回更快.如:
//dirname是取得文件路径,去掉文件名,常量不需要写引号。
echo dirname(__FILE__).'test.php';
或者:
//首先找到文件和所在路径,然后将其包含进来。
require(dirname(__FILE__).'test.php');