PHP 用户定义函数
除了内建的 PHP 函数,我们可以创建我们自己的函数.
函数是可以在程序中重复使用的语句块.
页面加载时函数不会立即执行.
函数只有在被调用时才会执行.
在 PHP 创建用户定义函数
用户定义的函数声明以关单 "function" 开头:
语法
function functionName() {
被执行的代码;
}
注释:函数名能够以字母或下划线开头(而非数字).
注释:函数名对大小写不敏感.
提示:函数名应该能够反映函数所执行的任务.
在下面的例子中,我们创建名为 "writeMsg()" 的函数.打开的花括号({)指示函数代码的开始,而关闭的花括号(})指示函数的结束.此函数输出 "Hello world!".如需调用该函数,只要使用函数名即可:
php
function writeMsg() {
echo "Hello world!";
writeMsg(); // 调用函数
PHP 函数参数
可以通过参数向函数传递信息.参数类似变量.
参数被定义在函数名之后,括号内部.您可以添加任意多参数,只要用逗号隔开即可.
下面的例子中的函数有一个参数($fname).当调用 familyName() 函数时,我们同时要传递一个名字(例如 Bill),这样会输出不同的名字,但是姓氏相同:
function familyName($fname) {
echo "$fname Zhang.br";
familyName("Li");
familyName("Hong");
familyName("Tao");
familyName("Xiao Mei");
familyName("Jian");
下面的例子中的函数有两个参数($fname 和 $year):
function familyName($fname,$year) {
echo "$fname Zhang. Born in $year br";
PHP 默认参数值
下面的例子展示了如何使用默认参数.如果我们调用没有参数的 setHeight() 函数,它的参数会取默认值:
echo "The height is : $minheight br";
PHP 函数 - 返回值
如需使函数返回值,请使用 return 语句:
function sum($x,$y) {
$z=$x◆$y;
return $z;
sys_getloadavg()
sys_getloadavt()可以获得系
与其让服务器因负
载过高而宕掉,不如在系统负载很高时主动die掉一个脚本,sys_getloadavg()就是用来帮你实现这个功能的.
不过很遗憾,该函数在windows下无效.
pack()
Pack()
cal_days_in_month()
cal_days_in_month()能够返回指定月份共有多少天.
_()
WordPress开发者经常能见到这个函数,还有
_e().这两个函数功能相同,与gettext()函数结合使用,能实现网站的多语言化.具体可参见PHP手册的相关部分介绍.
get_browser()
在发送页面前先看看用户的浏览器都能做些什么是
不是挺好?get_browser()能获得用户的浏览器类型,以及浏览器支持的功能,不过首先你需要一个php_browscap.ini文件,用来给
函数做参考文件.
要注意,该函数对浏览器功能的判断是基于该类浏览器的一般特性的.例如,如果用户关闭了浏览器对
JavaScript的支持,函数无法得知这一点.但是在判断浏览器类型和OS平台方面,该函数还是很准确的.
debug_print_backtrace()
这是一个调试用的函数,能帮助你发现代码中的逻辑错误.要理
解这个函数,还是直接看个例子吧:
$a
=
0;
function
iterate()
{
global
$a;
if(
)
recur();
echo
.
",
";
recur()
$a◆◆;
//
how
did
I
get
here?
"\n\n\n";
debug_print_backtrace();
iterate();
#
OUTPUT:
#0
called
at
metaphone()
这个函数返回单词的metaphone值,相同读音的单词具有相同的metaphone值,也就是说这个函数可以帮你判断两个单词的读音是否
相同.不过对中文就无效了...
natsort()
natsort()能将一个数组以自然排序法
进行排列,直接看个例子吧:
$items
array(
"100
apples",
"110
apples"
);
normal
sorting:
sort($items);
print_r($items);
Outputs:
Array
(
[0]
①.00
apples
[1]
①.10
natsort($items);
levenshtein()
Levenshtein()
告诉你两个单词之间的"距离".它告诉你如果想把一个单词变成另一个单词,需要插入、替换和删除多少字母.
看个例子吧:
$dictionary
"php",
"javascript",
"css"
$word
"japhp";
$best_match
$dictionary[0];
$match_value
levenshtein($dictionary[0],
$word);
foreach($dictionary
as
$w)
$value
levenshtein($word,
$w);
$w;
$value;
"Did
you
mean
the
'$best_match'
category?";
①.0.
glob()
glob()会让你觉得用
opendir(),
readdir()和closedir()来寻找文件非常蠢.
foreach
(glob("*.php")
$file)
"$file\n";
从这篇文章开始,我们将学习一系列的 PHP 文件系统相关函数.其实这些函数中,有很多都是我们经常用到的,大家并不需要刻意地去记住它们,只要知道有这么个东西,在使用的时候记得来查文档就可以了.
文件路径相关的函数往往在一些框架中会比较常见,而且多会配合 __FILE__ 、 __DIR__ 之类的魔术常量使用.
basename() 函数是获得路径中的文件名,它有两个参数,第一个是文件的路径,第二个是过滤掉的内容,比如第一条测试语句我们过滤掉文件的后缀名.
dirname() 返回的是路径中的路径部分,也就是不包含文件名的那部分内容,和 basename() 正好是相反的功能.
pathinfo() 函数用于以数组的形式返回路径中的信息,从结果来看,我们可以看到文件的 dirname 部分,basename 部分,以及文件的扩展名 extension 和不包含扩展名的 filename 内容.
realpath() 返回的是规范化的绝对路径名,它扩展所有的符号连接并且处理输入的路径中的 ./ 、 ../ 以及多余的 / ,返回的内容是标准规范的绝对路径.
此时此刻呢,我们学习一些修改文件相关属性的函数,主要就是在 Linux 系统环境中的文件权限信息的操作.
当然,首先我们得创建一个文件.和 Linux 中的命令是非常类似的.
touch() 函数除了给出要创建的文件名之外,还有两个可选参数可以指定文件的创建时间及访问时间,不给参数的话默认就是当前时间.这个文件名可以是相对或绝对路径中有权限的目录,并在该目录下创建一个空的文件.
通过 fileowner() 函数,我们可以获得某个文件所属的用户,默认情况下我们的用户是当前运行 PHP 脚本的用户,也就是系统目前的登录用户.今天这一节,我们使用 chown() 函数,将用户改为 www 用户.clearstatcache() 是用于清理文件系统的缓存信息,如果不清理一下的话,fileowner() 返回的依然还是之前的用户信息.
注意,上述函数如果在命令行中运行失败,大部分原因是没有权限,可以使用 sudo 进行测试.在 fastcgi 中运行时,就更加需要注意权限问题,仅在我们服务器可以操作的目录中进行安全的文件权限修改.
stat() 函数可以获取到指定文件的所有属性信息,今天这一节我们可以看到文件的 uid 、 gid 、 ctime 、 mtime 等信息.
在 Linux 系统中,有软连接和硬连接的相关知识.其实软连接就像是 Windows 中的快捷方式,而硬连接相关于复制了一份数据.在 PHP 中,也为我们提供了创建软硬连接以及相关的一些操作.
使用 link() 函数创建的就是一个指定文件的硬连接文件,而使用 symlink() 创建的则是一个软连接文件.相对来说,我们使用软连接的场景会更多一些.lstat() 就和 stat() 函数的功能一样,查看文件的各种属性信息,不过 lstat() 函数针对的是软硬连接文件.
同样地,我们也可以修改软硬连接的用户和用户组信息,不过它们的信息不能通过 fileowner() 或 filegroup() 查看.因为它们是连接文件,本身还是和原始文件绑定在一起的,使用 fileowner() 这类的函数查看到的依然是原始文件的信息.我们可以在系统环境中使用 ls -l 查看连接文件的用户和用户组信息是否修改成功.
今天的内容比较简单,而且修改权限的操作也并不常用.不过对于系统安全来,它们还是非常有用的,比如对于上传来说,我们要预防上传可执行文件的话,就可以通过修改文件的权限来让文件无法直接运行,从而起到安全保护的作用.另外,目录路径相关的操作也是一些框架的基础,几乎所有框架的入口或者说是 Composer 的入口,都会见到 dirname() 以及 basename() 之类函数的身影.
测试代码:
中的文件系统函数(一).php
参考文档:
php_uname — 返回运行 PHP 的系统的有关信息.
语法: php_uname ([$mode])
php_uname() 函数会返回运行 php 的操作系统的相关描述,和 phpinfo() 最顶端上输出的是同一个字符串. 如果仅仅要获取操作系统的名称.可以考虑使用常量 PHP_OS ,不过要注意该常量会包含 PHP 构建 (built) 时的操作系统名.
以上就是土嘎嘎小编为大家整理的和详解php函数相关的博客内容相关主题介绍,如果您觉得小编更新的文章只要能对粉丝们有用,就是我们最大的鼓励和动力,不要忘记讲本站分享给您身边的朋友哦!!