PHP中的-;,=;,::,$this-;解析
Posted a1232345
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了PHP中的-;,=;,::,$this-;解析相关的知识,希望对你有一定的参考价值。
类是一个复杂数据类型,这个类型的数据主要有属性、方法两种东西。
属性其实是一些变量,可以存放数据,存放的数据可以是整数、字符串,也可以是数组,甚至是类。
方法实际上是一些函数,用来完成某些功能。
引用一个类的属性和方法就使用->符号。
->是调用的意思
类 -> 类的成员变量或者成员函数
下面是一个例子小程序:
<?php
//定义类Cart
class Cart
function add_item($artnr, $num)
function remove_item($artnr, $num)
//示例继承定义类Named_Cart
class Named_Cart extends Cart
function set_owner ($name)
//使用类的代码
$ncart = new Named_Cart;
$ncart->set_owner("kris");
print $ncart->owner;
$ncart->add_item("10", 1);
?>
->这个箭头是调用类中的函数
比如
class a
function b()
$a=new a;
$a->b();
输出:a
还有一个=>这样的箭头,定义数组用
比如
$array1=array('a'=>5,'b'=>6);
while($arrayitem=each($array1))
extract($arrayitem);
echo('<br />'.$key.'='.$value);
输出:
a=5
b=6
而两个冒号的作用则如下:
类的属性及方法,正常呼叫的方法是这样:
$abc = new CT_String();
echo $abc->makeRandNumber(7);
而用用冒号,可以简写呼叫法
echo CT_String::makeRandNumer(7);//执行类别函式
差别在CT_String::makeRandNumber(7);只呼叫一次没有建立新物件
由此可以看出
::的意思:
不用实例化直接调用类的方法
$this 的含义是表示 实例化后的 具体对象!
我们一般是先声明一个类,然后用这个类去实例化对象!
但是,当我们在声明这个类的时候,想在类本身内部使用本类的属性或者方法。应该怎么表示呢?
例如:
我声明一个User类!它只含有一个属性 $name;
class User
public $_name;
现在,我给User类加个方法。就用getName()方法,输出$name属性的值吧!
PHP代码:
class User
public $name;
function getName()
echo $this->name;
//如何使用呢?
$user1 = new User();
$user1->name = '张三';
$user1->getName(); //这里就会输出张三!
$user2 = new User();
$user2->name = '李四';
$user2->getName(); //这里会输出李四!
怎么理解呢?
我上面创建了两个User对象。分别是 $user1 和 $user2 。
当我调用 $user1->getName()的时候,上面User类中的代码 echo $this->name ; 就是相当于是 echo $user1->name;
以上是关于PHP中的-;,=;,::,$this-;解析的主要内容,如果未能解决你的问题,请参考以下文章