AcidRain Posted October 10, 2005 Report Share Posted October 10, 2005 Cik liela atšķirība ir, ja mainīgo pirms izmantošanas: 1. definē, norādot tipu var $mas = array(); 2. definē, uzstāda null var $mas = null; 3. definē, nenorādot tā tipu var $mas; Link to comment Share on other sites More sharing options...
litt Posted October 10, 2005 Report Share Posted October 10, 2005 3. variants nav vajadzīgs, bet pirmie 2 skatoties pēc situācijas Link to comment Share on other sites More sharing options...
AcidRain Posted October 10, 2005 Author Report Share Posted October 10, 2005 Kāpēc 3 variants nav vajadzīgs? Runa ir par klasē definētiem mainīgajiem. Kādas ir tās situācijas, kurās labāk būtu izamantot 1 un kurās 2 gadījumu? Mana situācija ir tāda, ka ir masīvs, kurā dažreiz tiek kaut kas ierakstīts, bet dažreiz netiek. Link to comment Share on other sites More sharing options...
rpr Posted October 10, 2005 Report Share Posted October 10, 2005 manuprāt vienalga kā tu definē, jo jebkurā laikā var pārdefinēt par citu tipu. arī netīšām, bet tā manuprāt ir tā fīča dēķ kā ir tik viegli šo valodu apgūt. Link to comment Share on other sites More sharing options...
AcidRain Posted October 10, 2005 Author Report Share Posted October 10, 2005 Pilnīgi piekrītu tev rpr, bet mani interesē tā fīča, cik daudz es varu kontrolēt to, lai viņš neizmantotu lieki procesoru un atmiņu mainot tos tipus! Link to comment Share on other sites More sharing options...
Delfins Posted October 10, 2005 Report Share Posted October 10, 2005 Tipu var definēt, ja jauno objektu uzreiz izmanto bez datu setošanas Šajā gadījuma, jaunas vērtības tik ieliktas pie POST. Pie pirmās GET izsaukšanas būs tas mainīgais būs tukšs. Tāpēc, ja tu pre-definē kā Array, tad FOREACH nebļaus, ka `undefined variable` vai `variable is not array` ... to biš nebūs nekāda notice, un kods ir `pareizs` pēc OOP standartiem. if ( isPOST() ) { $obj->setArrData( $_POST['checkbox_arr'] ); } $arr = & $obj->getArrData(); foreach ( $arr AS $k=>$v ) { print "$k->$v"; //tikai piemers } Es šo metodi izmantoju pie savu DB objektu izmantosānas, jo katru tabulu iekš DB aprakstu ar klasi LedgerTable extends BaseTable { var $name=''; var $type = 0; } Un vēlāk nebaidos, ka man būs kaut kas `undefined`... ;) Link to comment Share on other sites More sharing options...
AcidRain Posted October 10, 2005 Author Report Share Posted October 10, 2005 (edited) Tātad pirmā lieta ir skaidra, PHP māk bļaut, ka mainīgais nav ar tādu tipu, kādu vajag! Man sanāca šāds piemērs: $a = ''; foreach($a as $b) { echo $b; } PHP man bļāva tā: Warning: Invalid argument supplied for foreach() Varbūt kāds var parādīt vēl kādu gadījumu, vai varbūt pat iedot visu sarakstu, kādos gadījumos šādi var gadīties? Edited October 10, 2005 by AcidRain Link to comment Share on other sites More sharing options...
Delfins Posted October 10, 2005 Report Share Posted October 10, 2005 (edited) jālieto setteri/getteri... un viss būs ķedā... + jāizmanto PHP5 (private/protected atslēgas) Edited October 10, 2005 by Delfins Link to comment Share on other sites More sharing options...
Recommended Posts