Inizializzazione delle variabili in una classe php

di il
2 risposte

Inizializzazione delle variabili in una classe php

Hola forum di iprogrammatori...
lo so quanto può essere odioso chiedere circa la sintassi del linguaggio...ma ho un problema con questo pezzo di codice:

class Cesare{
//cifrario
var $alfabeto = array('A','B','C','D','E','F','G','H','I','J','K','L','M','N','O','P','Q','R','S','T','U','V','W','X','Y','Z','a','b','c','d','e','f','g','h','i','j','k','l','m','n','o','p','q','r','s','t','u','v','w','x','y','z','1','2','3','4','5','6','7','8','9','0','-','_','@','?','!','\'','<','>','$','%','&');
var $chiave;

//l'errore si trova qui
//numero delle lettere del "alfabeto" che sarebbe il cifrario(di cesare)
$numeroalfabeto=count(alfabeto);


// La chiave ?un valore numerico da 1 a 25
function Cesare($chiave){
if($chiave>$this->numeroalfabeto){
$this->chiave = $chiave % 73;
}else{
$this->chiave = $chiave;
eccetera eccetera.....


praticamente mi segna errore di sintassi nella dichiarazione e inizializzazione di $numeroalfabeto.
mentre se lo sostituisco con: "$numeroalfabeto=73;" non segnala nulla.

seconda domanda: usando "$numeroalfabeto=73;" come richiamo questa variabile dai metodi della classe? usando $this->numeroalfabeto mi sfasa tutto il codice...

ci ho provato a cercare su google ma non ci ho capito tanto...

p.s.: questa classe tratta di criptaggio e decriptaggio trovato su internet e modificata da me...funziona ma aggirando il problema qua sopra descritto. per chi vuole il codice sono + che contento di condividere. basta chiedere.
w opensource!

2 Risposte

  • Re: Inizializzazione delle variabili in una classe php

    Alura.

    1) Se non ricordo male "var" è deprecato (o quantomeno inutilizzato) da parecchie versioni fa di php. Meglio usare public/protected/private a seconda della disibilità che la variabile o la funzione richiedono.

    2) scrivere una "parola" senza $ davanti, in php, significa richiamare una costante.

    3) Infine, tu stai cercando di eseguire un count di una variabile che di fatto non esiste ancora.
    Vediamo se riesco a spiegarmi meglio:
    class pippo {
        public $pluto = 'a';
    }
    Quando scrivi questo nel file pippo.php, stai solo dicendo a php che quando verrà istanziato un oggetto appartenente alla classe pippo, questo avrà una variabile "pluto" di valore 'a'. Ma fino a quando non scriverai:
    $un_pippo = new pippo();
    quella variabile $pluto in verità non esisterà, sarà solo un pezzo di testo in un file, di conseguenza l'interprete php non potrà eseguirci operazioni.
    Quindi, come minimo, potrai fare:
    class pippo {
        public $pluto = array('a');
        private $count_pluto = 0;
    
        public function __construct() {
            $this->count_pluto = count($this->pluto);
        }
    }
    In questo modo, quando la classe verrà istanziata, php andrà a contare il numero di elementi della tua variabile e lo assegnerà all'altra.
  • Re: Inizializzazione delle variabili in una classe php

    Grazie emanuele sei stato molto esaustivo
Devi accedere o registrarti per scrivere nel forum
2 risposte