● 系统函数,也就是PHP的提供的一些函数库,固然这些函数库既有PHP自带的函数库(如String、Math、Date/Time等),也有外部提供的函数库(GD二、MySQL、MSSQL等)。
若是是PHP自带的函数库的使用很是简单,只要你的操做系统支持PHP,也就支持了PHP的内置函数库。可是若是想使用外部提供的函数库的话,那就必需要有相应的外部文件支持了。还记得咱们的配置php.ini中那些extension吗?其实,它们就是一些外部函数所必须的一些动态连接库文件(Dynamic Link Library)。
不管是内置函数库仍是外部函数库,它们的功能都是系统提供的,若是咱们想常常完成一些功能相同,可是参数值又有变化的某些功能,而这种功能系统函数又没有提供,咱们就须要自定义函数了!自定义函数在有的资料中称为方法(Mthod),其实,它们在某种状况下是彻底相同的。在面对过程编程中称为函数;而在面向对象编程中称为方法。
● 自定义函数
程序员根据自身的须要而建立的函数
自定义函数的好处在于封装性和重用性。
2、 建立自定义函数
function 函数名称([$参数名称[=默认值[,…]]])
{
执行代码;
…
[return 返回值]
}
注:在自定义函数中除为调试程序的目的,不要带有echo、print等输语句,由于只要带有输出语句,那么就表明你的函数只要之后被调用,那么也就只能输出了!而实际上说,不少的自定义函数的功能是为了实现某种指定的功能,好比说获取文件的扩展名,而获取文件的扩展名又是文件改名的一部分,因此,不能带有输出语句,只能将获得的结果返回,当返回结果后,你是想输出,仍是作为其余程序的一部分来出现,那么随便了!
3、 调用自定义函数
[$变量名称=]函数名称([[$参数名称=]参数值[,…]]);
下面咱们经过几个案例来讲一下!
4、 案例
1.产生字符和数字的随机数(版本1)
function random()
{
$char = "0123456789abcdefghijklmnopqrstuvwxyz";
for($i=0;$i<4;$i++)
{
$chars .= substr($char,rand(0,strlen($char)-1),1);
}
return $chars;
}
$rndChar = random();
echo($rndChar);
这样,咱们就产生了随机的验证码,这其中substr、strlen是系统函数,具体的功能请你们查阅一下PHP手册!
这个案例中产生的随机数中有可能产生同一个字符出现屡次的状况,若是想屏蔽这种状况,只须要将上面的案例作一个小小的修改就能够了!
2. 产生字符和数字的随机数(版本2)
function random()
{
$char = "0123456789abcdefghijklmnopqrstuvwxyz";
for($i=0;$i<4;$i++)
{
$rndChar = substr($char,rand(0,strlen($char)-1),1) ;
$char = str_replace($rndChar,NULL,$char);
$chars .= $rndChar;
}
return $chars;
}
$rndChar = random();
echo($rndChar);
以上的这个案例不存在参数,下面咱们来看一个带有参数的案例!
固然,产生随机数的方法有不少,咱们只是拿出其中的一个来!
3.获取文件的扩展名
在不少PHP程序中常常能够容许用户上传附件或图像,但为保证附件文件或图像文件在服务器上的名称的惟一性,为文件改名就显得尤为重要了!可是文件改名只须要更改主文件名,因此,咱们必需要获知文件的扩展名!
function getExtName($file)
{
$extName = substr($file,strrpos($file,".")+1);
$extName = strtolower($extName);
return $extName;
}
$file = "05.gif";
$extName = getExtName($file);
echo($extName);
这个案例中带有一个必选参数,下面咱们来看一个带有可选参数的案例!
4.获取当前的时间戳
Unix时间戳指从公元1970-01-01 00:00:00至如今(指UTC时间)所经历的秒数。
function getTimestamp($timezone = 8)
{
$timestamp = time() + $timezone * 3600;
return $timestamp;
}
echo(getTimestamp());
若是一个函数中既带有必选参数,又带有可选参数,可选参数必须放置在必选参数以后!
另外,既然系统函数容许嵌套,自定义函数也容许嵌套,可是必须正确的进行嵌套!
函数是编程中很是重要的部分,这其中的理解只能靠你们的造化了!^_^
5、包含文件
若是有多个文件中都须要调用某个自定义函数,那么能够经过包含文件的方法来实现,也就是说,咱们须要将共享的某些信息存储在包含文件中,若是其它页面想调用这些共享信息,咱们只须要来调用这个文件就能够了!这样,就能够实现"牵一发而动全身"的目的了!
调用包含文件能够经过如下语句来实现:
include("文件的位置及全称");
include_once("文件的位置及全称");
require("文件的位置及全称");
require("文件的位置及全称");
include和require的区别是:
若是指定的包含文件不存在或名称引用错误,include产生一个警告信息;后续代码继续执行;require则产生一个致命错误,中止后续代码的执行!