jobo: Trim CSV Data, Refactoring Iteration replace Recursion

Beitrag lesen

Hallo,

Iteration statt Rekursion.

Hörte sich eher nach Refaktorisierungsprinzip an:
http://www.refactoring.com/catalog/replaceRecursionWithIteration.html

Man könnte es ja gleich beim Einlesen machen, aber ich kriegs bei Iteration nur mit Umkopieren hin:

  
<?php  
class CSV  
{  
	// Wird mit CSV-Daten bestückt  
	private $_table = NULL;  
	  
	function __construct($filePath) {  
		$fileHandle = @fopen($filePath,"r");  
		if ($fileHandle) {  
			while (($row = fgetcsv($fileHandle)) !== false) {  
				//exclude empty lines  
				if (!is_array($row)) {  
					continue;  
				}  
				foreach ($row as $cellValue) {  
					$trimmedRow[] = trim($cellValue);  
				}  
				$this->_table[] = $trimmedRow;  
			}	  
		}  
		// merci handle, go free  
		fclose($fileHandle);  
	}	  
	  
	public function getTable() {  
		if (NULL !== $this->_table) {  
			return $this->_table;  
		}  
		return false;  
	}  
}  
$csv = new CSV("test.csv");  
var_dump($csv->getTable());  

Ich halte es für fraglich, dass zwei Schleifen schneller sind als ein Funktionsaufruf und PHPs interne Abarbeitung. Letzten Endes werden die Unterschiede jedoch nicht so groß sein, dass es bei normaler Anwendung ins Gewicht fallen wird.

Übersichtlich solls halt sein (und wartbar(;-)). Insofern find/fand ich array_walk_recursive ja eigentlich nicht so schlecht.

Gruß

jobo