所以,為了防止這樣的信息出現,我使用foreach的時候,都會把參數進行強制類型轉換,形勢如下:

foreach((array)$arr as $key => $value);

這樣做一直相安無事,就在前幾天,突然出現了問題。我強制類型轉換以後不能正常的調用object的方法了。

複製代碼 代碼如下:

class service implements Iterator{

function __construct($service_define,$filter=null){

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

$this->filter = $filter;

$this->valid();

}

function current(){

return $this->current_object;

}

public function rewind() {

$this->iterator->rewind();

}

public function key() {

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

}

public function next() {

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

}

public function valid() {

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

if($this->filter()){

return true;

}else{

$this->iterator->next();

}

};

return false;

}

private function filter(){

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

if($current){

$this->current_object = new Sameple($current);

if($this->current_object){

return true;

}

}

return false;

}

}

class Sameple{

var $class_name;

function __construct($class_name = null) {

$this->class_name = $class_name;

}

function show(){

echo $this->class_name,'
';

}

}

$servicelist = array(

'list' => array(

'first',

'second',

'third',

'fourth',

),

);

$ser = new service($servicelist);

foreach ($ser as $s) {

$s->show();

}

/*

//執行報錯的代碼 使用了將$ser執行強制類型轉換操作

foreach ((array)$ser as $s) {

$s->show();

}*/

之所以出現這樣的問題就是,foreach不但可以遍曆數組,還可以遍歷實現了Iterator介面的類。

我以前只注意到了數組的情況,把實現了Iterator介面的類的情況給忽略了。以後一定會注意。

依次為記。

php umount强制,php foreach 參數強制類型轉換的問題 | 學步園相关推荐

  1. java bigdecimal.valueof_java 中的大數據類型(BigInteger和BigDecimal) | 學步園

    一.為什麼為用到BigInteger和BigDecimal這種數據類型呢? 我們非常清楚,java裡面整型int與浮點型float,double它們存放數據的範圍是有邊界的.那麼如果需要更大的數據時, ...

  2. cvcvtcolor_openCV–cvCvtColor函數 | 學步園

    1.概況 cvCvtColor(...),是Opencv里的顏色空間轉換函數,可以實現RGB顏色向HSV,HSI等顏色空間的轉換,也可以轉換為灰度圖像. 參數CV_RGB2GRAY是RGB到gray, ...

  3. oracle 减少回表,減少oracle sql回表次數 提高SQL查詢性能 | 學步園

    要寫出高效的SQL,那麼必須必須得清楚SQL執行路徑,介紹如何提高SQL性能的文章很多,這裡不再贅述,本人來談談如何從 減少SQL回表次數 來提高查詢性能,因為回表將導致掃描更多的數據塊. 我們大家都 ...

  4. matlab ellip,IIR濾波器設計(調用MATLAB IIR函數來實現) | 學步園

    % IIR濾波器設計 % 目的:設計一個採樣頻率為1000Hz.通帶截止頻率為50Hz.阻帶截止頻率為100Hz的低通濾波器,並要求通帶最大衰減為1dB,阻帶最小衰減為60dB. clc;clear; ...

  5. linux svn missingargument -m,缺少參數-m在windows powershell中使用svn。

    I'm trying to run this at Windows PowerShell: 我試着在Windows PowerShell中運行它: svn ci -m "" dir ...

  6. (转)你有所不知的HTML發佈Flash的參數(三):base

    转自:http://www.luar.com.hk/flashbook/archives/001422.php 有載入外部資源的都知道,Flash相對路徑是根據它所在HTML而不是Flash自己本身, ...

  7. 寫一個函數計算當參數為 n(n很大) 時的值 1-2+3-4+5-6+7……+n

    看到網路上一篇blog一個問題,引發一群網友的討論. Q:寫一個函數計算當參數為 n(n很大) 時的值 1-2+3-4+5-6+7--+n 這是個常見的級數問題,我們必須化簡成closed form ...

  8. CakePHP Pagination (分頁功能) 加入自己的參數

    如果還不知道什麼是 Pagination 或者還不了解如何使用,請參考: CakePHP Pagination (分頁功能) . 通常在管理後台實作時,常設定許多查詢條件來查詢資料,比如:起始.結束時 ...

  9. 修改oracle 安裝參數,oracle 安裝相關參數設定

    1,设置系统参数: Oracle 数据库 10g 需要以下所示的内核参数设置. 一般情况下可以设置最大共享内存为物理内存的一半,如果物理内存是 2G,则可以设置最大共享内存为 1073741824, ...

最新文章

  1. jquery easyui datagrid 显示外键/子属性/二层属性的值的方法
  2. 区块链系列4-智能合约
  3. Select模型原理
  4. 求字符串中最长无重复子序列
  5. ROS系统实现 tf坐标系广播与监听
  6. 刘强东:猪飞到天疯狂了十几秒 但摔下死得更快
  7. android 解决华为 SlidingMenu出现白屏
  8. Mysql和Oracle获取自增主键
  9. 安装python遇到错误_安装Python时遇到如下问题,解决方案
  10. SQL Server中全角和半角字符的比较问题
  11. 解决Glyphicons 字体不显示问题的两种解决方案
  12. DE4-530的OpenCL开发环境搭建
  13. 1400 序列分解(dfs)
  14. PROE_CONFIG
  15. Android Intent定义选择器打开相机和相册
  16. 给网站添加HTTPS(添加SSSL证书)
  17. CreateFile函数详解 不仅仅是对文件的操作 还有对系统设备的IO的操作
  18. java nio oio_Netty NIO transport OIO transport
  19. HTML、CSS学习笔记(一)
  20. 用python对CSV文件中的数据进行统计分析

热门文章

  1. 图管够!灌篮高手、女儿国…阿里日_这帮程序员太会玩了!
  2. 8.0/9.0 Email 设置
  3. fedora20 安装ror
  4. 把一个数据库的数据插入到另外一个数据库
  5. Modbus协议概念最详细介绍
  6. Linux内核设计的艺术
  7. Linux Shell 重定向到文件以当前时间命名
  8. Error: file not found: arch/arm/boot/compressed/piggy.lzo
  9. 每日一题(2)—— -2与2的比较
  10. python parser count_8个超实用的Python脚本,收藏备用