aiuto con OOP

  • Creatore Discussione Creatore Discussione pape86
  • Data di inizio Data di inizio

pape86

Nuovo Utente
15 Gen 2010
19
0
0
Ciao!
Ho un problema a livello di programmazione ad oggetti da cui non riesco a venirne fuori..ho creato una classe ClasseA al cui interno è definita la funzione functionA; questa funzione la vorrei richiamare all'interno di un'altra funzione functionB che ho definito in un'altra classe, che chiamo per semplicità ClasseB. Le due classi sono definite ciascuna su un file distinto ClassA.php e ClassB.php.
Allora, ho pensato di fare così:

PHP:
class ClassA {
  public function functionA() {...}
}

class ClassB extends ClassA {
  public function functionB() {
    ...   $this->functionA() ...
  }
}

in questo modo funziona..però non so se sia corretto estendere una classe (che contiene diverse funzioni) solo per usarne una.

Allora, ho pensato di creare un'istanza della ClasseA all'interno del file ClasseB.php e richiamare la funzione che mi serve, cioè functionA. Così:

PHP:
<?php
require_once("\ClasseA.php");


class ClasseB {
  private $istanzaA=new ClasseA();
  
  public function functionB() {
     ... $istanzaA->functionA();  ...
  }
}
?>

ma così mi dà errore "Parse error: parse error in ...".
Non si può creare una variabile di classe (public, private o protected) che sia un'istanza di un'altra classe? è un errore/orrore madornale immagino!! :confused::) 0:)

come posso fare allora?
 
devo usare l'operatore di risoluzione dell'ambito, giusto? :D
almeno, con quello funziona...ho scritto:

PHP:
<?php
require_once("\ClasseA.php"); 

class ClassB {
  public function functionB() {
    ...
    $variabile = ClasseA::functionA();    //  FUNZIONA!
    ...
  }
}  
?>
 

Discussioni simili