PHP学习笔记(二)——函数和对象

上一篇 / 下一篇  2006-12-19 09:57:36 / 个人分类:开发相关

 

1.函数的定义

函数定义的语法形式为:

 

function 函数名()

{

 

    函数体

 

}

 

PHP中对用户自定义函数的函数名有如下要求:

l         不能与PHP的内部函数同名

l         不能与PHP关键字同名

l         不能以数字开头

l         不能包含点号“.”。

 

PHP中不允许一次返回多个值,但我们可以利用返回一个数组的方法达到同时返回多个值的目的。

 

2.函数的调用

实际参数列表要与形式参数列表相对应(有默认参数时实际参数还要与默认参数对应)。如果实际参数比形式参数多,多余的参数会被自动舍弃;如果实际参数比形式参数少,实际参数会被一一填入形式参数中,不足部分以空参数代替。

 

3.函数的参数传递

①值传递

所谓值传递,就是将实际参数的值拷贝到形式参数中,然后由形式参数参与函数内部的计算,函数调用结束后,实际参数的值不会发生改变。

②引用传递

如果要实现形式参数改变时实际参数也发生相应改变,就要使用引用传递的方式了。实现参数的引用传递有两种方法:

l         在函数定义的时候,在形式参数前面加上“&”符号,例如:

function fun(&$Var1){…}

              以后在调用函数fun()时就会默认采用引用传递了。

l         函数调用的时候,在实际参数前面加上“&”符号,例如:

function fun($Var1){…}

fun(&$Var2);

如果形式参数$Var1的值在函数中发生改变,实际参数$Var2的值也会发生相应的改变。

 

③默认参数

       PHP还支持与C++中类似的默认参数,即在函数定义时可以为一个或多个参数指定默认值。

 

4.可变函数

PHP的某个代码段中,如果某一变量的值与一个函数同名时,则在该代码段中可以使用该变量代替函数名来调用函数,调用方法为在变量名后加上括号及函数参数“(…)”。

例如:

function fun(){…}

$Var=”fun”;

$Var();

 

       可变函数与普通函数调用时最大的区别就在于可变函数前面的“$”符号,有此符号,系统就会认为是可变函数。

       注意:如果写成$Var=”fun()”,则“$Var”只是一个普通字符串而已,再调用语句“$Var;”不会实现fun()函数的功能。

 

 

5.三个与不定参数相关的函数:

3个函数都只能在函数中调用,在函数之外使用会产生出错信息。

int func_num_args(void)

这个函数的作用是返回传入参数的个数。

 

int func_get_arg(int arg_num)

这个函数将返回第arg_num个参数值,传入的参数下标从0开始,如果越界,系统会报错,并返回False

 

int func_get_args(void)

这个函数的作用是返回一个包含当前函数所有参数的数组。

 

6.PHP中类的定义

类中成员变量的定义方法为:“var 变量名;”,成员函数与一般函数的定义方法相同。

类一旦定义之后,系统会自动为其指定一个$this变量,代表类自身。

注意:如果成员函数中要使用类中的成员变来那个或其他成员函数,不能直接引用,要用“$this->变量名”或“$this->函数名”。

每个类一般还有一个构造函数,用于类的初始化。

 

7.类的封装性

类中的属性不能由类的实例化对象直接访问,只能通过成员函数来访问。

 

8.类中的构造函数

构造函数是类中一个特殊的函数,这个函数的函数名与类名相同,而且在对象生成时会自动调用。

构造函数可以接收参数,这样可以在对象实例化时指定初始化的值。

 

9.类的继承性

一个类在继承其他类时,可以继承其中所有的属性和方法,这种继承其他类的类就是派生类,被继承的类叫父类。PHP中继承类要使用extends关键字,使用方法为:

       Class 父类名 extends 子类名

       注意:PHP中不支持多重继承。

       派生类通常也需要有自己的构造函数,因为父类中的构造函数在派生类中只是一个普通函数,当派生类对象生成时并不会自动执行。

 

10.PHP中类的多态性

当派生类中某个函数的函数名与其父类中某个函数的函数名重复时,系统在派生类对象中会自动选用派生类中的函数,这就时类的多态。

       之类继承父类时,在之类中重新对父类函数加以定义,而不改变函数名,就实现了类的多态。


TAG: 开发相关

 

评分:0

我来说两句

显示全部

:loveliness: :handshake :victory: :funk: :time: :kiss: :call: :hug: :lol :'( :Q :L ;P :$ :P :o :@ :D :( :)

Open Toolbar