[prev in list] [next in list] [prev in thread] [next in thread] 

List:       php-general
Subject:    [PHP] ArrayInterator always true
From:       TCP <tgckpg () gmail ! com>
Date:       2012-01-23 20:18:56
Message-ID: CAJg5x_bQREK7KzoaU=E1UJprkUve52ShS6aE-_ozyEH+9mpyKg () mail ! gmail ! com
[Download RAW message or body]

I'm trying to parse an $agrv array that contain options (without
square brackets): [-a "abc" -b "bbc" "bcc" -d "dbc" -e -f]
I use ArrayIterator to iterate through the line:
  - whenever it reach /-\w/, it read through the following qoutes
until it reach another /-\w/.



The problem is it seems the $iterator->valid() always return TRUE and
cause infinte loop.


function parseOptions ( $argStream, $handler ) {
	//Chop first useless argument -- argv[0]
	array_shift ( $argStream ) ;
	//Initiate ArrayObject for iterator
	$arrayobject = new ArrayObject ( $argStream ) ;
	//Initiate iterator for iteration
	$iterator = $arrayobject->getIterator();

	//If options is set first
	if( $iterator->valid() && preg_match ( '/^-\w$/', $iterator->current() ) ) {
		//iterate through whole argument stream
		for (	; $iterator->valid(); $iterator->next() ) {
			//Check if reached next option
			if( preg_match ( '/^-\w$/', $opts = $iterator->current() ) ) {
				//Get current options
				$currOpt = $opts;
				//echo "$currOpt\n";
				//Test if next stream is an option
				for ($iterator->next(); $iterator->valid(); $iterator->next() ) {
					if ( preg_match ( '/^-\w$/', $opts = $iterator->current() ) ) {
						//echo "$currOpt $opts\n";
						//$handler($currOpt, $opts);
						$currOpt = $opts;
					}
					var_dump($iterator->valid());
				}
			}//End if
			//echo "$currOpt $opts\n";
			//$handler($currOpt, $opts);
		}// End for
		
	//If option is not set first.
	} else {
		//Try other approach.
	}// End if
}


I've no idea what is going on.
Please help.


Regards,
Panguin

--
筆使文富,卻使人窮。

--
PHP General Mailing List (http://www.php.net/)
To unsubscribe, visit: http://www.php.net/unsub.php

[prev in list] [next in list] [prev in thread] [next in thread] 

Configure | About | News | Add a list | Sponsored by KoreLogic