PHP学习笔记 - 进阶篇(2)

函数

1、自定义函数

PHP内置了超过1000个函数,因此函数使得PHP成为一门非常强大的语言。大多数时候我们使用系统的内置函数就可以满足需求,但是自定义函数通过将一组代码封装起来,使代码进行复用,程序结构与逻辑更加清晰。

PHP函数的定义方式:

1.使用关键字“function”开始

2.函数名可以是字母或下划线开头:function name()

3.在大括号中编写函数体:

function name() {
echo 'Eric';
}

通过上面的步骤,我们就定义了一个简单的函数,当我们需要的时候,就可以在代码中调用这个函数,调用方法为函数名+参数,例如:name();

2、函数的参数

PHP的函数可以没有参数,也可以有若干个参数,多个参数称之为参数列表,采用逗号进行分割,参数类似于一个变量,调用时用来传递数据到函数体中。通过传递参数可以使函数实现对参数的运算,得到我们想要的结果。

参数的变量名可以自由指定,但最好能够表达相关的意思,常用的设定参数的方法为:

function sum($a, $b) {
return $a+$b;
}

3、返回值

使用return关键字可以使函数返回值,可以返回包括数组和对象的任意类型,如果省略了 return,则默认返回值为 NULL。

function add($a) {
return $a+1;
}
$b = add(1);

返回语句会立即中止函数的运行,并且将控制权交回调用该函数的代码行,因此下面函数的返回值跟上面的函数是一样的。

function add($a) {
return $a+1;
$a = 10;
return $a+20;
}
$b = add(1);

函数不能返回多个值,但可以通过返回一个数组来得到类似的效果。

function numbers() {
return array(1, 2, 3);
}
list ($one, $two, $three) = numbers();

4、可变函数

所谓可变函数,即通过变量的值来调用函数,因为变量的值是可变的,所以可以通过改变一个变量的值来实现调用不同的函数。经常会用在回调函数、函数列表,或者根据动态参数来调用不同的函数。可变函数的调用方法为变量名加括号。

function name() {
echo 'jobs';
}
$func = 'name';
$func(); //调用可变函数

可变函数也可以用在对象的方法调用上。

class book {
function getName() {
return 'bookname';
}
}
$func = 'getName';
$book = new book();
$book->$func();

5、内置函数

内置函数指的是PHP默认支持的函数,PHP内置了很多标准的常用的处理函数,包括字符串处理、数组函数、文件处理、session与cookie处理等。

我们先拿字符串处理函数来举例,通过内置函数str_replace可以实现字符串的替换。下面的例子将“jobs”替换成“steven jobs”:

$str = 'i am jobs.';
$str = str_replace('jobs', 'steven jobs', $str);
echo $str; //结果为“i am steven jobs”

另外一些函数是通过其他扩展来支持的,比如mysql数据库处理函数,GD图像处理函数,邮件处理函数等,PHP默认加载了一些常用的扩展库,我们可以安装或者加载其他扩展库来增加PHP的处理函数。

6、判断函数是否存在

当我们创建了自定义函数,并且了解了可变函数的用法,为了确保程序调用的函数是存在的,经常会先使用function_exists判断一下函数是否存在。同样的method_exists可以用来检测类的方法是否存在。

function func() {
}
if (function_exists('func')){
echo 'exists';
}

类是否定义可以使用class_exists。

class MyClass{
}
// 使用前检查类是否存在
if (class_exists('MyClass')) {
$myclass = new MyClass();
}

PHP中有很多这类的检查方法,例如文件是否存在file_exists等。

$filename = 'test.txt';
if (!file_exists($filename)) {
echo $filename . ' not exists.';
}

PHP学习笔记 - 进阶篇(2)的更多相关文章

  1. PHP学习笔记 - 进阶篇(11)

    PHP学习笔记 - 进阶篇(11) 数据库操作 PHP支持哪些数据库 PHP通过安装相应的扩展来实现数据库操作,现代应用程序的设计离不开数据库的应用,当前主流的数据库有MsSQL,MySQL,Syba ...

  2. PHP学习笔记 - 进阶篇(10)

    PHP学习笔记 - 进阶篇(10) 异常处理 抛出一个异常 从PHP5开始,PHP支持异常处理,异常处理是面向对象一个重要特性,PHP代码中的异常通过throw抛出,异常抛出之后,后面的代码将不会再被 ...

  3. PHP学习笔记 - 进阶篇(9)

    PHP学习笔记 - 进阶篇(9) 图形图像操作 GD库简介 GD指的是Graphic Device,PHP的GD库是用来处理图形的扩展库,通过GD库提供的一系列API,可以对图像进行处理或者直接生成新 ...

  4. PHP学习笔记 - 进阶篇(8)

    PHP学习笔记 - 进阶篇(8) 日期与时间 取得当前的Unix时间戳 UNIX 时间戳(英文叫做:timestamp)是 PHP 中关于时间与日期的一个很重要的概念,它表示从 1970年1月1日 0 ...

  5. PHP学习笔记 - 进阶篇(7)

    PHP学习笔记 - 进阶篇(7) 文件操作 读取文件内容 PHP具有丰富的文件操作函数,最简单的读取文件的函数为file_get_contents,可以将整个文件全部读取到一个字符串中. $conte ...

  6. PHP学习笔记 - 进阶篇(6)

    PHP学习笔记- 进阶篇(6) 会话控制(session与cookie) 当前的Cookie为: cookie简介 Cookie是存储在客户端浏览器中的数据,我们通过Cookie来跟踪与存储用户数据. ...

  7. PHP学习笔记 - 进阶篇(4)

    PHP学习笔记 - 进阶篇(4) 字符串操作 字符串介绍 PHP开发中,我们遇到最多的可能就是字符串. 字符串变量用于包含字符串的值. 一个字符串 通过下面的3种方法来定义: 1.单引号 2.双引号 ...

  8. PHP学习笔记 - 进阶篇(5)

    PHP学习笔记 - 进阶篇(5) 正则表达式 什么叫正则表达式 正则表达式是对字符串进行操作的一种逻辑公式,就是用一些特定的字符组合成一个规则字符串,称之为正则匹配模式. $p = '/apple/' ...

  9. PHP学习笔记 - 进阶篇(3)

    PHP学习笔记 - 进阶篇(3) 类与面向对象 1.类和对象 类是面向对象程序设计的基本概念,通俗的理解类就是对现实中某一个种类的东西的抽象, 比如汽车可以抽象为一个类,汽车拥有名字.轮胎.速度.重量 ...

随机推荐

  1. OAuth 2.0

    国外 OAuth2.0 大全:http://oauth.net/2/ 国内经典:http://www.fising.cn/2011/03/%E4%B8%80%E6%AD%A5%E4%B8%80%E6% ...

  2. eclipse中异常的快捷键

    选中你要try的代码,alt+shift+z 就会弹出一个菜单,里面有个try 选项

  3. Js Pattern - Namespace Pattern

    bad code // BEFORE: 5 globals // Warning: antipattern // constructors function Parent() {} function ...

  4. w3cmark前端精彩博文周报 10.13-10.19

    w3cmark推出每周精选前端博文推荐,通过阅读别人的代码,学习别人的经验,提升自己的水平.欢迎关注 @前端笔记网 微博.其实如果是关注我们微博的朋友都对下面的文章熟悉,因为我们会一旦发现有价值的.精 ...

  5. [原 -> 砖] C# IEnumerable<T>泛型取值

    为什么要写这个?因为发现,很多人在读取泛型集合中Item的值时,使用的方法是 item.GetType().GetField("xxxxx").GetValue() 或类似的写法. ...

  6. 如何手动添加Android Dependencies包

    在ADT16 之前可以在工程里面做关联,eclipse会在工程上自动添加ReferenceLibrary.新版本的ADT修改了第三方jar的导入方式,只需要在工程目录下新建libs文件夹,注意是lib ...

  7. TCP/IP协议原理与应用笔记17:IP编址(重点)

    1. IP地址(通用标识符) 对于同一个网络设备(主机或路由器)的不同网络连接,需要不同的IP地址进行标识 2. 主机标识符 主要有下面三种方式的主机标识方式: (1)Name:是什么,可读性强(了解 ...

  8. Linux kill -9 和 kill -15 的区别

    “我的天呀!”,网页编辑没有自动保存草稿的功能.害的我昨天写的东西都没有了.算了,不计较这些了.反正也没写多少. 嘻嘻. 大家对kill -9 肯定非常熟悉,在工作中也经常用到.特别是你去重启tomc ...

  9. CentOS(二)--初识linux的一些常用命令

    linux命令是对Linux系统进行管理的命令.对于Linux系统来说,无论是中央处理器.内存.磁盘驱动器.键盘.鼠标,还是用户等都是文件,Linux系统管理的命令是它正常运行的核心,与之前的DOS命 ...

  10. WampServer下修改和重置MySQL密码(转)

    转自:www.2cto.com/database/201504/387589.html WampServer安装后密码是空的, 修改一般有两种方式: 一是通过phpMyAdmin直接修改: 二是使用W ...