您的位置:

和详解php函数相关的博客内容(php基本语法简述)

本文目录一览:

什么是PHP的函数?

PHP 用户定义函数

除了内建的 PHP 函数,我们可以创建我们自己的函数。

函数是可以在程序中重复使用的语句块。

页面加载时函数不会立即执行。

函数只有在被调用时才会执行。

在 PHP 创建用户定义函数

用户定义的函数声明以关单 "function" 开头:

语法

function functionName() {

被执行的代码;

}

注释:函数名能够以字母或下划线开头(而非数字)。

注释:函数名对大小写不敏感。

提示:函数名应该能够反映函数所执行的任务。

在下面的例子中,我们创建名为 "writeMsg()" 的函数。打开的花括号({)指示函数代码的开始,而关闭的花括号(})指示函数的结束。此函数输出 "Hello world!"。如需调用该函数,只要使用函数名即可:

?php

function writeMsg() {

echo "Hello world!";

}

writeMsg(); // 调用函数

?

PHP 函数参数

可以通过参数向函数传递信息。参数类似变量。

参数被定义在函数名之后,括号内部。您可以添加任意多参数,只要用逗号隔开即可。

下面的例子中的函数有一个参数($fname)。当调用 familyName() 函数时,我们同时要传递一个名字(例如 Bill),这样会输出不同的名字,但是姓氏相同:

?php

function familyName($fname) {

echo "$fname Zhang.br";

}

familyName("Li");

familyName("Hong");

familyName("Tao");

familyName("Xiao Mei");

familyName("Jian");

?

下面的例子中的函数有两个参数($fname 和 $year):

?php

function familyName($fname,$year) {

echo "$fname Zhang. Born in $year br";

}

familyName("Li","1975");

familyName("Hong","1978");

familyName("Tao","1983");

?

PHP 默认参数值

下面的例子展示了如何使用默认参数。如果我们调用没有参数的 setHeight() 函数,它的参数会取默认值:

?php

function setHeight($minheight=50) {

echo "The height is : $minheight br";

}

setHeight(350);

setHeight(); // 将使用默认值 50

setHeight(135);

setHeight(80);

?

PHP 函数 - 返回值

如需使函数返回值,请使用 return 语句:

?php

function sum($x,$y) {

$z=$x+$y;

return $z;

}

echo "5 + 10 = " . sum(5,10) . "br";

echo "7 + 13 = " . sum(7,13) . "br";

echo "2 + 4 = " . sum(2,4);

?

10 个经典PHP函数

1.

sys_getloadavg()

sys_getloadavt()可以获得系

统负载情况。该函数返回一个包含三个元素的数组,每个元素分别代表系统再过去的1、5和15分钟内的平均负载。

与其让服务器因负

载过高而宕掉,不如在系统负载很高时主动die掉一个脚本,sys_getloadavg()就是用来帮你实现这个功能的。

不过很遗憾,该函数在windows下无效。

2.

pack()

Pack()

能将md5()返回的32位16进制字符串转换为16位的二进制字符串,可以节省存储空间。

3.

cal_days_in_month()

cal_days_in_month()能够返回指定月份共有多少天。

4.

_()

WordPress开发者经常能见到这个函数,还有

_e()。这两个函数功能相同,与gettext()函数结合使用,能实现网站的多语言化。具体可参见PHP手册的相关部分介绍。

5.

get_browser()

在发送页面前先看看用户的浏览器都能做些什么是

不是挺好?get_browser()能获得用户的浏览器类型,以及浏览器支持的功能,不过首先你需要一个php_browscap.ini文件,用来给

函数做参考文件。

要注意,该函数对浏览器功能的判断是基于该类浏览器的一般特性的。例如,如果用户关闭了浏览器对

JavaScript的支持,函数无法得知这一点。但是在判断浏览器类型和OS平台方面,该函数还是很准确的。

6.

debug_print_backtrace()

这是一个调试用的函数,能帮助你发现代码中的逻辑错误。要理

解这个函数,还是直接看个例子吧:

$a

=

0;

function

iterate()

{

global

$a;

if(

$a

10

)

recur();

echo

$a

.

“,

“;

}

function

recur()

{

global

$a;

$a++;

//

how

did

I

get

here?

echo

“\n\n\n”;

debug_print_backtrace();

if(

$a

10

)

iterate();

}

iterate();

#

OUTPUT:

#0

recur()

called

at

[C:\htdocs\php_stuff\index.php:8]

#1

iterate()

called

at

[C:\htdocs\php_stuff\index.php:25]

#0

recur()

called

at

[C:\htdocs\php_stuff\index.php:8]

#1

iterate()

called

at

[C:\htdocs\php_stuff\index.php:21]

#2

recur()

called

at

[C:\htdocs\php_stuff\index.php:8]

#3

iterate()

called

at

[C:\htdocs\php_stuff\index.php:25]

#0

recur()

called

at

[C:\htdocs\php_stuff\index.php:8]

#1

iterate()

called

at

[C:\htdocs\php_stuff\index.php:21]

#2

recur()

called

at

[C:\htdocs\php_stuff\index.php:8]

#3

iterate()

called

at

[C:\htdocs\php_stuff\index.php:21]

#4

recur()

called

at

[C:\htdocs\php_stuff\index.php:8]

#5

iterate()

called

at

[C:\htdocs\php_stuff\index.php:25]

7.

metaphone()

这个函数返回单词的metaphone值,相同读音的单词具有相同的metaphone值,也就是说这个函数可以帮你判断两个单词的读音是否

相同。不过对中文就无效了。。。

8.

natsort()

natsort()能将一个数组以自然排序法

进行排列,直接看个例子吧:

$items

=

array(

“100

apples”,

“5

apples”,

“110

apples”,

“55

apples”

);

//

normal

sorting:

sort($items);

print_r($items);

#

Outputs:

#

Array

#

(

#

[0]

=

100

apples

#

[1]

=

110

apples

#

[2]

=

5

apples

#

[3]

=

55

apples

#

)

natsort($items);

print_r($items);

#

Outputs:

#

Array

#

(

#

[2]

=

5

apples

#

[3]

=

55

apples

#

[0]

=

100

apples

#

[1]

=

110

apples

#

)

9.

levenshtein()

Levenshtein()

告诉你两个单词之间的“距离”。它告诉你如果想把一个单词变成另一个单词,需要插入、替换和删除多少字母。

看个例子吧:

$dictionary

=

array(

“php”,

“javascript”,

“css”

);

$word

=

“japhp”;

$best_match

=

$dictionary[0];

$match_value

=

levenshtein($dictionary[0],

$word);

foreach($dictionary

as

$w)

{

$value

=

levenshtein($word,

$w);

if(

$value

$match_value

)

{

$best_match

=

$w;

$match_value

=

$value;

}

}

echo

“Did

you

mean

the

‘$best_match'

category?”;

10.

glob()

glob()会让你觉得用

opendir(),

readdir()和closedir()来寻找文件非常蠢。

foreach

(glob(“*.php”)

as

$file)

echo

“$file\n”;

PHP中的文件系统函数(一)

从这篇文章开始,我们将学习一系列的 PHP 文件系统相关函数。其实这些函数中,有很多都是我们经常用到的,大家并不需要刻意地去记住它们,只要知道有这么个东西,在使用的时候记得来查文档就可以了。

文件路径相关的函数往往在一些框架中会比较常见,而且多会配合 __FILE__ 、 __DIR__ 之类的魔术常量使用。

basename() 函数是获得路径中的文件名,它有两个参数,第一个是文件的路径,第二个是过滤掉的内容,比如第一条测试语句我们过滤掉文件的后缀名。

dirname() 返回的是路径中的路径部分,也就是不包含文件名的那部分内容,和 basename() 正好是相反的功能。

pathinfo() 函数用于以数组的形式返回路径中的信息,从结果来看,我们可以看到文件的 dirname 部分,basename 部分,以及文件的扩展名 extension 和不包含扩展名的 filename 内容。

realpath() 返回的是规范化的绝对路径名,它扩展所有的符号连接并且处理输入的路径中的 ./ 、 ../ 以及多余的 / ,返回的内容是标准规范的绝对路径。

接下来,我们学习一些修改文件相关属性的函数,主要就是在 Linux 系统环境中的文件权限信息的操作。

当然,首先我们得创建一个文件。和 Linux 中的命令是非常类似的。

touch() 函数除了给出要创建的文件名之外,还有两个可选参数可以指定文件的创建时间及访问时间,不给参数的话默认就是当前时间。这个文件名可以是相对或绝对路径中有权限的目录,并在该目录下创建一个空的文件。

通过 fileowner() 函数,我们可以获得某个文件所属的用户,默认情况下我们的用户是当前运行 PHP 脚本的用户,也就是系统目前的登录用户。在这里,我们使用 chown() 函数,将用户改为 www 用户。clearstatcache() 是用于清理文件系统的缓存信息,如果不清理一下的话,fileowner() 返回的依然还是之前的用户信息。

同理,使用 filegroup() 函数获得文件的属组信息,chgrp() 用于修改文件的属组。fileperms() 用于返回文件的权限信息,它返回的是数字模式的文件访问权限,这里我们使用 sprintf() 格式化结果后获得我们常用的 Linux 系统权限格式。chmod() 函数用于修改文件的权限,它的权限参数是三个 8 进制数据组成的数字,也就是代表 Linux 系统中的 1 、2 、4 和它们的组合,所以我们需要在前面再加上一个 0 用于确保操作能够正常执行。关于系统文件权限的知识大家需要认真学习 Linux 系统中相关的内容。

注意,上述函数如果在命令行中运行失败,大部分原因是没有权限,可以使用 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_uname — 返回运行 PHP 的系统的有关信息。

语法: php_uname ([$mode])

php_uname() 函数会返回运行 php 的操作系统的相关描述,和 phpinfo() 最顶端上输出的是同一个字符串。 如果仅仅要获取操作系统的名称。可以考虑使用常量 PHP_OS ,不过要注意该常量会包含 PHP 构建 (built) 时的操作系统名。