函数的存在是为了将程序按功能分块。方便程序的使用、管理和调试。
主题 | PHP | JAVA |
函数的定义 |
function 函数名([参数1, 参数2...参数n])
{ 函数体; return 返回值;
}
|
与java形式上区别较大,java是不需要写function的,并且java是强类型的。
|
变量的范围 |
局部变量:
函数内部声明的变量,作用范围仅限于函数内部
全局变量:
全局变量也称为外部变量,是在函数的外部定义的,它的作用域为从变量定义处开始,到本程序文件的末尾。
这里有一点特别需要区别java的是:
$one
=
200;
$two = 100; function demo() { echo $one + $two; } function demo1() { global $one, $two; echo $one + $two; }
这里demo输出为0;demo1输出为300
即在函数中要想使用全局变量必须使用关键字global、或者使用$GLOBALS替代global。
静态变量:
要声明函数中的变量为静态变量,需要用static,与java一致。
如果函数变量为静态的,那么该函数运行完毕后这个静态变量是不释放的。
| java中全局变量这块和php差别非常大 |
各种类型的函数 |
常规参数的函数
伪类型参数的函数
引用参数的函数(感觉这里还是c语言的思想,与java区别非常大)
php默认是按照值传递参数的,即使在函数内部改变了参数的值,它也不会改变外部的值,不会对调用它的父程序造成影响
如果在 函数的参数前加上&符号。就不同了。如果在函数内部改变了参数的值,它会改变外部的值。不过在调用这个函数的时候必须传入一个变量,而不是一个值。
默认参数的函数
可变个数参数的函数
与java类似
回调函数
具体理解可见:
这么看来php不仅支持回调函数还支持接口回调。前者是函数式编程的思想,后者是面对对象的思想。
|
构造函数
静态函数
普通函数
java的类型就没有php多了
|