www.www.zaachi.com » Blog/Php » Hodnota proměnné v metodě

Občas narazíte na situaci, kdy potřebujete získat z metody hodnotu proměnné, kterou ale nemůžete vrátit pomocí return, například kvůli dalšímu zpracování kódu.
S těmito třemi případy jsem se setkal, který je podle vás nejlepší, nebo jaký způsob používáte vy?
class MyClass
{
/**
* Reorder columns from table
* @param $columns
* @param $affected_columns
* @return unknown_type
*/
public function ReorderColumns($columns, &$affected_columns)
{
/**
* my reorder code...
*/
$affected_columns = count( $columns );
/**
* next code...
*/
}
}
$affected_columns = 0;
$mc = new MyClass();
$mc->ReorderColumns($columns, $affected_columns);
if( $affected_columns == 0 )
{
/**
* my code
*/
}
class MyClass
{
//count of affected columns
public $affected_columns = 0;
/**
* Reorder columns from table
* @param $columns
* @param $affected_columns
* @return unknown_type
*/
public function ReorderColumns($columns)
{
/**
* my reorder code...
*/
$this->affected_columns = count( $columns );
/**
* next code...
*/
}
}
$mc = new MyClass();
$mc->ReorderColumns($columns);
if( $mc->affected_columns == 0 )
{
/**
* my code
*/
}
class MyClass
{
//count of affected columns
private $affected_columns = 0;
/**
* Reorder columns from table
* @param $columns
* @param $affected_columns
* @return unknown_type
*/
public function ReorderColumns($columns)
{
/**
* my reorder code...
*/
$this->affected_columns = count( $columns );
//$this->SetAffectedColumns(count($columns));
/**
* next code...
*/
}
/**
* Getter ($affected_columns)
* @return int
*/
public function GetAffectedColumns()
{
return $this->affected_columns;
}
/*
private function SetAffectedColumns($affected_columns)
{
$this->affected_columns = $affected_columns;
}
*/
}
$mc = new MyClass();
$mc->ReorderColumns($columns);
if( $mc->GetAffectedColumns() == 0 )
{
/**
* my code
*/
}
Tento posledni příklad by bylo možné samozřejmě doplnit ještě o setovací funkci (zapoznámkovaná SetAffectedColumns), ale to je v tomto případě zbytečné, protože by metoda stejně nemohla být veřejná.

Autor: Zaachi
Publikováno: 6.11.2009 10:00:32
PHP: Výchozí hodnota formulářů
Jednoduchá kontrola proměnných
iPhone - NSUserDefaults - uživatelské proměnné