как создать кеширующую переменную в функции на php

кеширующий статический массив на php

function some function { 

$arc = array($some_variable);
if ( CMS::rcach($arc , null ) !== null){
return CMS::rcach($arc , null) ;
}

CMS::rcach($arc , true) ;

return true;

}

//*****************************************************************

public  static $aRcach =array()  ;

public static function rcach( $ar , $val = null )
{
if ( $val!==null &&  in_array($ar ,CMS::$aRcach[1] ) )
{
$key = array_search ($ar ,CMS::$aRcach[1] );
return CMS::$aRcach[0][$key] ;
} else
{
CMS::$aRcach[1][] = $ar ;
CMS::$aRcach[0][] = $val ;
}
}

Заметка в php нельзя передавать массив в виде ключа

$a=array();

$b[$a] - так нельзя

http://www.php.net/manual/ru/language.types.array.php

Массивы (тип array) и объекты (тип object) не могут использоваться в качестве ключей. При подобном использовании будет генерироваться предупреждение: Недопустимый тип смещения (Illegal offset type).

Выходом из ситуации может быть серилизация массива и преврашение его в hash

 

 Leave a Reply

You may use these HTML tags and attributes: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <s> <strike> <strong>

(required)

(required)

   
© 2012 Программирование в удовольствие Яндекс.Метрика Suffusion theme by Sayontan Sinha