PHP的面向对象编程浅见

初学PHP,之前由C++转来,所以对于PHP里面的面向对象压力很大。

这里贴点自己的体会,希望有同样经历的人可以在此得到帮助。

 

PHP类中的属性如何在类方法中引用?

class myClass

{

protected $myData;

public function __construct()

{

$this->myData = 'my test data';

}

public function Display()

{

echo $this->myData;

}

}

Display这段蛋疼的代码我改了N久,先是使用$myData,提示使用未定义变量。

然后改为this->$myData报错。

再然后使用$this->$myData继续报错。

最终改为现在的形式。

 

总结下,由于是动态语言,所以可能函数内部使用$myData,PHP认为是你自己又定义一个变量。

引用对象的成员变量,须使用$this关键字引用,但myData作为一个属性,前面又不需要加'$',挺蛋疼的规定和语法。

其他语言转过来的程序员们需要注意了。

 

PHP中的对象数组。

由于我的需求中需要将一个HTML Parse出来的东西存入到数据库。为方便起见,我将Parse出来的数据写了一个Data类。

但是这些数据具有相同格式,也就是说,我需要将Data类的对象存放于一个Data数组。

 

查了半天PHP Manual,翻出来一个ArrayObject的类,比较好用。

也很简单,举例如下。

 

$arrayObj = new ArrayObject();

$myObj1 = new myClass();

$myObj2 = new myClass();

$myObj1->myData = 'test1';

$myObj2->myData = 'test2';


//add item to arrayObj;
$arrayObj->append($myObj1);

$arrayObj->append($myObj2);

//output
foreach($arrayObj as $item)

{

echo $item->myData;

}


当然ArrayObject还有其他的方法,可以去看接口声明或者PHP Manual。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值