php进阶笔记之函数
来源:互联网 发布:log4j 输出json 编辑:程序博客网 时间:2024/05/09 03:59
以下为慕课网php进阶篇的个人php进阶学习笔记,用于自己复习查看。
PHP内置了超过1000个函数,因此函数使得PHP成为一门非常强大的语言。大多数时候我们使用系统的内置函数就可以满足需求,但是自定义函数通过将一组代码封装起来,使代码进行复用,程序结构与逻辑更加清晰。
PHP函数的定义方式:
1.使用关键字“function”开始
2.函数名可以是字母或下划线开头:function name()
3.在大括号中编写函数体:
function name() { echo 'Eric';}
通过上面的步骤,我们就定义了一个简单的函数,当我们需要的时候,就可以在代码中调用这个函数,调用方法为函数名+参数,例如:name();
返回值:
使用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();
可变函数
function name() { echo 'jobs';}$func = 'name';$func(); //调用可变函数
可变函数也可以用在对象的方法调用上。
class book { function getName() { return 'bookname'; }}$func = 'getName';$book = new book();$book->$func();
内置函数
内置函数指的是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的处理函数。
判断函数是否存在
为了确保程序调用的函数是存在的,经常会先使用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进阶笔记之函数
- php进阶笔记之数组
- 韩顺平php视频笔记48 函数进阶
- php进阶笔记之类
- PHP学习笔记八之字符串(进阶篇)
- PHP学习笔记九之正则表达式(进阶篇)
- PHP学习笔记十之会话控制(进阶篇)
- PHP学习笔记十一之文件系统(进阶篇)
- PHP学习笔记十三之图形图像操作(进阶篇)
- PHP学习笔记十四之异常(进阶篇)
- PHP 进阶之路
- Python3之函数进阶
- JavaScript进阶之函数
- 学习笔记之PHP魔术函数
- PHP学习笔记之(func_get_args函数)
- PHP学习笔记之array_intersect_key() 函数使用
- php学习笔记之array_walk函数
- PHP学习笔记之call_user_func_array函数
- java abstract类和interface接口学习总结
- 我的Cocos2d-x 3.3之旅
- iOS证书,签名基础
- Eclipse+PyDev的详细的安装和使用过程
- Openfire 开发插件web UI
- php进阶笔记之函数
- asio测试
- 04-4. 猜数字游戏
- pyth0n多进程
- 在腾讯实习的那段日子:不要在难受的时候选择 '逃避/离开'
- 传输层TCP和UDP的区别
- C++为什么使用模板类
- 三、Linux系统编程-文件和IO(一)文件的打开和关闭
- Android 线程之Thread