Jump to content
php.lv forumi

OOP sīkumi


Gacha

Recommended Posts

Sāku tā pamazām lietot oop, jo ir nepieciešamība.

Papētot šo topiku un vēl dažus materiālus, man nav skaidrs dažas lietas:

 

1. Ko dara & operators: =& , function &bla() utt.

2. Vai tā ir?: Ja ir klase A un viņai ir mainigais x, tad no citas klases, vai koda to iegut nav iespejams, ja nu vienigi uztaisa funkciju, kura atgriezh to mainigo:

function x(){
return $this->x;
}

 

Vai ir vēl kas tāds kas būtu svarīgs darbojoties ar klasēm?

Link to comment
Share on other sites

1) &= operators nodrošina objekta padošanu pēc norādes. Tb tas neveido objekta kopiju, bet vienkārši mainīgajam piešķir norādi uz atbilstošo atmiņas apgabalu - mazāk aizņemtas atmiņas, ātrāka darbība, etc.

 

Ja iekš PHP4 tas tiek izmantots stipri bieži, tad lietojot PHP5 tādai sintaksei vairs nav īpašas jēgas, jo visi objekti jau pēc noklusējuma tiek piešķirti šādā veidā.

 

2) Atkarīgs no koda.

Teiksim klasei

class ab{

private $x;

 

}

 

tu pie $x nevari tikt nekā savādāk kā caur funkciju. Savukārt, klasei

class ba{

public $x;

}

tu vari brīvi tikt klāt $x mainīgajam. (abi iepriekšējie piemēri ir PHP5) PHP4 gadījumā jebkuram mainīgajam var brīvi tikt klāt arī no klases ārpuses.

Starp citu, ja mēs runājam par PHP un OOP, tad būtu vēlams arī norādīt PHP versiju, ko tu izmanto.

Link to comment
Share on other sites

Vai var taisīt OOP kodu, kurš normāli strādās, gan uz PHP4 gan uz PHP5 ? Cik skatījos, tad php5 daudzas lietas ir savādākas un daudz ir nācis klāt!

Edited by Gacha
Link to comment
Share on other sites

Atradu, kur man slēpās problēma ar klasēm un globāliem mainīgajiem. Problēma bija "require_once" - ja izmantoju, to, tad nevaru normāli iegūt vērtību no inklūdojamā faila, ja nu vienīgi piešķiru tam superglobals statusu. Problēma ir tā, ka katram modulim ir savs language.php fails, kur katrs satur masīvu ar vienādu nosaukumu, un ja izmanto "once" tad tas to neinklūdo, jo jau tāds masīvs eksistē, vismaz es tā to izpratu pēc dokumentācijas izpētes!

Link to comment
Share on other sites

×
×
  • Create New...