php中的类有什么用和自定义函数有什么区别
发布时间:2025-05-20 23:27:41 发布人:远客网络
一、php中的类有什么用和自定义函数有什么区别
1、请看PHP手册18章,里面的内容你看了就明白。
2、类是变量与作用于这些变量的函数的集合。使用下面的语法定义一个类:
3、//将$num个$artnr物品加入购物车
4、functionadd_item($artnr,$num){
5、$this->items[$artnr]+=$num;
6、//将$num个$artnr物品从购物车中取出
7、functionremove_item($artnr,$num){
8、if($this->items[$artnr]>$num){
9、$this->items[$artnr]-=$num;
10、}elseif($this->items[$artnr]==$num){
11、unset($this->items[$artnr]);
12、上面的例子定义了一个Cart类,这个类由购物车中的商品构成的数组和两个用于从购物车中添加和删除商品的函数组成。
13、不能将一个类的定义分割到多个文件中。也不能将一个类的定义分割到多个PHP块中,除非该分割是在一个方法声明内部。以下用法将不起作用:
14、名称stdClass已经被Zend使用并保留。不能在PHP代码中定义名为stdClass的类。
15、函数名__sleep和__wakeup在PHP类中是魔术函数。除非想要与之联系的魔术功能,否则在任何类中都不能以此命名函数。
16、PHP将所有以__开头的函数名保留为魔术函数。除非想要使用一些见于文档中的魔术功能,否则建议不要在PHP中将函数名以__开头。
17、在PHP4中,var变量的值只能初始化为常量。用非常量值初始化变量,需要一个初始化函数,该函数在对象被创建时自动被调用。这样一个函数被称之为构造函数(见下面)。
18、var$todays_date=date("Y-m-d");
19、var$owner='Fred'.'Jones';
20、$this->todays_date=date("Y-m-d");
21、$this->name=$GLOBALS['firstname'];
22、类也是一种类型,就是说,它们是实际变量的蓝图。必须用new运算符来创建相应类型的变量。
23、$another_cart->add_item("0815",3);
24、上述代码创建了两个Cart类的对象$cart和$another_cart,对象$cart的方法add_item()被调用时,添加了1件10号商品。对于对象$another_cart,3件0815号商品被添加到购物车中。
25、$cart和$another_cart都有方法add_item(),remove_item()和一个items变量。它们都是明显的函数和变量。可以把它们当作文件系统中的某些类似目录的东西来考虑。在文件系统中,可以拥有两个不同的README.TXT文件,只要不在相同的目录中。正如从为了根目录访问每个文件需要输入该文件的完整的路径名一样,必须指定需要调用的函数的完整名称:在PHP术语中,根目录将是全局名字空间,路径名符号将是->。因而,名称$cart->items和$another_cart->items命名了两个不同的变量。注意变量名为$cart->items,不是$cart->$items,那是因为在PHP中一个变量名只有一个单独的美元符号。
26、$cart->items=array("10"=>1);
27、//不正确,因为$cart->$items变成了$cart->""
28、$cart->$items=array("10"=>1);
29、//正确,但可能不是想要的结果:
30、//$cart->$myvar变成了$cart->items
31、$cart->$myvar=array("10"=>1);
32、在定义类的时候,无法得知将使什么名字的对象来访问:在编写Cart类时,并不知道之后对象的名称将会命名为$cart或者$another_cart。因而你不能在类中使用$cart->items。然而为了类定义的内部访问自身的函数和变量,可以使用伪变量$this来达到这个目的。$this变量可以理解为“我自己的”或者“当前对象”。因而'$this->items[$artnr]+=$num'可以理解为“我自己的物品数组的$artnr计数器加$num”或者“在当前对象的物品数组的$artnr计数器加$num”。
33、注意:伪变量$this通常未定义,如果其所在的方法是被静态调用的话。但这不是个严格规定:如果一个方法被从另一个对象内静态调用的话,则$this会被定义。此时$this的值是那个发出调用的对象。用下例演示:
34、echo'$thisisdefined(';
35、echo"\$thisisnotdefined.\n";
36、注意:有一些不错的函数用来处理类和对象。应该关注一下类/对象函数。
二、php 中如何得到一个对象的类型
1、得到一个对象的类型,使用gettype()函数:
2、echogettype(array());//输出array
得到一个对象是哪个类的实例,使用get_class()函数:
3、得到一个对象是哪个类的实例,使用get_class()函数:
4、echoget_class();//输出stdClass
得到一个类或对象的方法和属性,要使用反射:
5、得到一个类或对象的方法和属性,要使用反射:
6、$ref=newReflectionClass('MyClass');
7、$ref->getProperties();//会返回一组对象,用法参考PHP手册
8、$ref->getMethods();//会返回一组对象,用法参考PHP手册
9、$ref=newReflectionObject($obj);
三、在php中,函数就是类吗
1、你不要被术语所迷惑。你可理解成完成一个所指定的功能这就叫函数,可能听起来还不是理解下面举例说明:
2、比如你现在有一个需求:将一个字符串从小写转成大小
3、我们首先想有没有这样一个完成我所指定的功能这样一个东西,很显示有那就是 strtoupper();这是就是完成我所需求的,同理也是我所指定的功能。
4、$str='zhujinkui';//准备一上字符串
5、echo strtoupper($str);//利用定个函数所完成我所指定的功能这就是所谓的函数
6、类它就是一系列的东西和过程的一种总结抽象。
7、它需由成员属性和成员方法组成,具体需要你多多了解一下这方面知识我就不多讲。
8、那么我想说的是,既然你知道了什么是函数,那么接下来类你可以理解成把多个函数放到一个类里面,完成我们更多的需求。
9、优点:便于维护,便于开发,便于重用,便于项目管理。