28 lines
		
	
	
		
			731 B
		
	
	
	
		
			PHP
		
	
	
	
	
	
			
		
		
	
	
			28 lines
		
	
	
		
			731 B
		
	
	
	
		
			PHP
		
	
	
	
	
	
<?php
 | 
						|
namespace nur\b\coll;
 | 
						|
 | 
						|
/**
 | 
						|
 * Trait TIterableArray: implémentation des méthodes de base pour être un objet
 | 
						|
 * array-like itérable. Ce trait doit être utilisé conjointement à
 | 
						|
 * {@link TBaseArray}
 | 
						|
 */
 | 
						|
trait TIterableArray {
 | 
						|
  private $valid;
 | 
						|
 | 
						|
  function _key() { return key($this->data); }
 | 
						|
  function _current() { return current($this->data); }
 | 
						|
  function rewind() {
 | 
						|
    if ($this->data === null) {
 | 
						|
      $this->valid = false;
 | 
						|
    } else {
 | 
						|
      $first = reset($this->data);
 | 
						|
      $this->valid = $first !== false || key($this->data) !== null;
 | 
						|
    }
 | 
						|
  }
 | 
						|
  function next() {
 | 
						|
    $next = next($this->data);
 | 
						|
    $this->valid = $next !== false || key($this->data) !== null;
 | 
						|
  }
 | 
						|
  function valid() { return $this->valid; }
 | 
						|
}
 |