Jump to content
php.lv forumi

Recommended Posts

Posted

Gribēju uzzināt par mainīgo tīrīšanas (unset) lietderīgumu. Cik garā kodā un pie kāda mainīgo skaita tas varētu būt nepieciešams (vēlams), jo man liekas, ka ne pārāk garos kodos mainīgos tīrīt nav vērts jo tas tikai sabremzē skriptu un atmiņas tīrīšana pusgaros kodos nav lietderīga, jo PHP tāpat pēc skripta palaišanas visus mainīgos attīra.

Posted

interesants jautājums, būtu interesanti redzēt konkrētus ciparus.

Posted

Ņu, dažiem strādā tāda funkcija kā memory_get_usage(), ar to skaisti varēja paskatīties.

 

/me lieto unset pārsvarā 3 gadījumos:

 

Gadījums 1: type juggling

Kaut kur kodā $tmp=array(); pēc tam gribu izmantot $tmp kā ordināro tipu (str,float,int,bool). Lai nebūtu kļūdu/notīšu, taisam unset($tmp); un bliežam savu $tmp='a,jh;fdsf';

 

Gadījums 2: lielu failu ielasīšana un bilžu ģenerēšana.

pēc dafaulta php ir ierobežots oper. atmiņas daudzums (kā nu kuram, bet parasti 8mb)

Teiksim, man jāapstrāda liels fails (6 mb) un vēl jāuztaisa kāda 1024x768 bildīte ar image* funkcijām kas arī ļoti labi havo RAMu, tad pēc faila apstrādes tā mainīgajam taisu unset. Ja jāapstrādā divi faili, tad vienkārši otro ielasu tai pašā mainīgajā, kas automātiski atmet pirmo vēŗtību un atbrivo RAMu. Bildēm obligāti taisu imagedestroy() (tas kā fclose() - varbūt nav vienmēr obligāts, bet labāk būtu ja iraid).

 

Gadījums 3: mainīgo "at"iniciēšana

 

$canWrite=1;

$canDelete=2;

 

if (!$isAdmin)

unset($canWrite, $canDelete);

....

if (!empty($canWrite))

switch($canWrite)

{

case 1:

//level 1

break;

case 2:

//more options, level 2

break;

}

 

bet šo gan tā paretāk (un piemērs arī so-so)

×
×
  • Create New...