php 参数强制类型转换,php foreach 参数强制类型转换的问题

所以,为了防止这样的信息出现,我使用foreach的时候,都会把参数进行强制类型转换,形势如下:

foreach((array)$arras$key=>$value);

这样做一直相安无事,就在前几天,突然出现了问题。我强制类型转换以后不能正常的调用object的方法了。

复制代码代码如下:

classserviceimplementsIterator{

function__construct($service_define,$filter=null){

$this->iterator=newArrayIterator($service_define['list']);

$this->filter=$filter;

$this->valid();

}

functioncurrent(){

return$this->current_object;

}

publicfunctionrewind(){

$this->iterator->rewind();

}

publicfunctionkey(){

return$this->iterator->current();

}

publicfunctionnext(){

return$this->iterator->next();

}

publicfunctionvalid(){

while($this->iterator->valid()){

if($this->filter()){

returntrue;

}else{

$this->iterator->next();

}

};

returnfalse;

}

privatefunctionfilter(){

$current=$this->iterator->current();

if($current){

$this->current_object=newSameple($current);

if($this->current_object){

returntrue;

}

}

returnfalse;

}

}

classSameple{

var$class_name;

function__construct($class_name=null){

$this->class_name=$class_name;

}

functionshow(){

echo$this->class_name,'
';

}

}

$servicelist=array(

'list'=>array(

'first',

'second',

'third',

'fourth',

),

);

$ser=newservice($servicelist);

foreach($seras$s){

$s->show();

}

/*

//执行报错的代码使用了将$ser执行强制类型转换操作

foreach((array)$seras$s){

$s->show();

}*/

之所以出现这样的问题就是,foreach不但可以遍历数组,还可以遍历实现了Iterator接口的类。

我以前只注意到了数组的情况,把实现了Iterator接口的类的情况给忽略了。以后一定会注意。

依次为记。

您可能感兴趣的文章:PHP中的类型约束介绍PHP学习笔记(三):数据类型转换与常量介绍PHP中数据类型转换的三种方式浅析php数据类型转换解析PHP将对象转换成数组的方法(兼容多维数组类型)浅谈PHP强制类型转换,慎用!php学习之数据类型之间的转换代码PHP变量类型的强制转换PHP类型转换函数intvalPHP类型约束用法示例

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值