⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 iterator_041a.phpt

📁 PHP v6.0 For Linux 运行环境:Win9X/ WinME/ WinNT/ Win2K/ WinXP
💻 PHPT
字号:
--TEST--SPL: iterator_to_array() and exceptions from destruct--SKIPIF--<?php if (!extension_loaded("spl")) print "skip"; ?>--FILE--<?phpclass MyArrayIterator extends ArrayIterator{	static protected $fail = 0;	public $state;	static function fail($state, $method)	{		if (self::$fail == $state)		{			throw new Exception("State $state: $method()");		}	}	function __construct()	{		$this->state = MyArrayIterator::$fail;		self::fail(0, __FUNCTION__);		parent::__construct(array(1, 2));		self::fail(1, __FUNCTION__);	}	function rewind()	{		self::fail(2, __FUNCTION__);		return parent::rewind();	}	function valid()	{		self::fail(3, __FUNCTION__);		return parent::valid();	}	function current()	{		self::fail(4, __FUNCTION__);		return parent::current();	}	function key()	{		self::fail(5, __FUNCTION__);		return parent::key();	}	function next()	{		self::fail(6, __FUNCTION__);		return parent::next();	}	function __destruct()	{		self::fail(7, __FUNCTION__);	}	static function test($func, $skip = null)	{		echo "===$func===\n";		self::$fail = 7;		while(self::$fail < 10)		{			try			{				var_dump($func(new MyArrayIterator()));				break;			}			catch (Exception $e)			{				echo $e->getMessage() . "\n";			}			if (isset($skip[self::$fail]))			{				self::$fail = $skip[self::$fail];			}			else			{				self::$fail++;			}		}	}}MyArrayIterator::test('iterator_to_array');MyArrayIterator::test('iterator_count', array(3 => 6));?>===DONE===<?php exit(0); ?>--EXPECT--===iterator_to_array===State 7: __destruct()array(2) {  [0]=>  int(1)  [1]=>  int(2)}===iterator_count===State 7: __destruct()int(2)===DONE===

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -