Mine sisusse
Otsi siit
  • Rohkem valikuid...
Otsi tulemusi mis sisaldab...
Otsi tulemusi...
  • 0
Jälgi teemat sisse logides  

Õpin OOP ja tekkis väikene tõke!

Küsimus

No ma uurisin vähe seda OOP värki ja proovisin midagi eha aga ei saa aru mis viga selles nüüd sees on :)

 

 

 

 

class userData(){

public usr();

public pwd();

 

function dataMatch($calc){

$usr = $calc->usr;

$pwd = $calc->pwd;

if($usr==$pwd){

echo "dada";

}

else{

echo "fail";

}

}

}

$v = new userData();

$v->usr='Koll';

$v->pwd='Koll';

?>

 

Anyone?? Btw php tag on ees ka liclt seal teised read ka :)


| Veebiprogrammeerija & Veebidisainer |

 

 

 

 

Jaga seda postitust


Postituse link
Share on other sites

3 vastust sellele küsimusele

Soovitatud postitused

  • 0

See pole küll OOP mida teed, see võiks midagi sellist olla. Tegin siia sulle kaks varianti, esimene nii nagu sa tahtsid, et on funktsioon, mis kontrollib, kui see välja kutsuda kas on sarnased ja teine on construct funktsiooniga, see käivitub kohe kui klass välja kutsutakse, hetkel teostab see kontrolli kas usr ja pwd on sarnased, kirjutab järelduse muutujasse kontrol ja tulemuse nägemiseks väljastad muutuja kontrol omale.

 

class userData {
public $usr;
public $pwd;  
public $kontrol;

function __construct() { 
    if($this->usr==$this->pwd){
	 $this->kontrol = "dada";
	 }
	 else{
	 $this->kontrol = "fail";
	 }
      } 

public function  dataMatch() { 
		 if($this->usr==$this->pwd){
	 return "dada";
	 }
	 else{
	 return "fail";
	 }
 } 

}	

// klassi lopp algab test 

$v = new userData ;
$v->usr='Koll';
$v->pwd='Koll';	  

echo $v->dataMatch();	
echo'
';
echo $v->kontrol;

Jaga seda postitust


Postituse link
Share on other sites
  • 0

No esimene viga oli selles, et sa kirjutasid class süntaksi valesti

class userData(){

 

class userData{

 

järgmiseks on vale kirjapilt ka muutujatel

public usr();

 

public $usr;

 

Mida sa funktsioonis dataMatch($calc) oma aruga tegid sellest ma aru ei saanudki.

$usr = $calc->usr; ???

 

jah funktsioon oli ka väljakutsumata, kuid see ei oleks toiminud. Funktsioon on ikka funktsioon, vahet pole kas on OOP sees või muidu.

 

class sees muutujate kasutus täiesti vale

 

if($usr==$pwd){

 

if($self->usr==$self->pwd){

 

Kui nüüd teed sinna classi veel ühe funktsiooni

  public function  dataMatch2($usr, $pwd) { 
		 if($usr==$pwd){
	 return "dada";
	 }
	 else{
	 return "fail";
	 }
 } 

 

ja kutsud selle välja

 

echo $v->dataMatch2("Jaan", "Juss");	

 

Siis näed, et kuigi on sama nimega muutujad seal, toimivad funktsioonid erinevalt, kuna ühed on võetud classi seest ja ennem defineeritud aga teised tulevad funktsiooni parameetritena kaasa.

Muudetud liikme toru-loru'i poolt

Jaga seda postitust


Postituse link
Share on other sites

Kommentaari lisamiseks loo konto või logi sisse

Kommenteerimiseks peate olema liige

Loo konto

Liituge meie kommuuni uue kontoga. See on lihtne!

Loo uus konto

Logi sisse

On juba konto? Logi sisse siit.

Logi sisse nüüd
Jälgi teemat sisse logides  

×
×
  • Loo uus...

Oluline informatsioon

Selle veebisaidi paremaks muutmiseks oleme teie seadmesse paigutanud küpsised . Võite kohandada oma küpsiste seadeid , vastasel juhul eeldame, et te olete küpsiste kasutamisega nõus kui jätkate veebisaidil sirvimist.. Palun lugege läbi Kasutustingimused ja Privaatsuspoliitika.