Visualizzazione dei risultati da 1 a 4 su 4

Discussione: Classi e array

  1. #1
    Utente di HTML.it
    Registrato dal
    Aug 2000
    residenza
    Edinburgh
    Messaggi
    401

    Classi e array

    Qualcuno mi puo aiutare a trovare dove sta l'errore nel seguente codice? Lo sto guardando da troppo tempo e non ne vengo a capo...

    codice:
    <?
    class Test
    	{
    	var $numbers;
    	
    	function howmany()
    		{
    		echo (count($numbers));
    		}
    	}
    	
    $t = new Test;
    $t->numbers = array(5,5,6,7,23,4,5,7);
    echo (count($t->numbers)." 
    ");
    $t->howmany();
    Mi aspetterei di avere come risultato 8 e 8 invece vien fuori 8 e 0... perche mai?

    tnx
    nICO

  2. #2
    Utente di HTML.it
    Registrato dal
    May 2004
    Messaggi
    274
    codice:
    <?
    class Test
    	{
    	var $numbers;
    	
    	function howmany()
    		{
    		echo (count($this->numbers));
    		}
    	}
    	
    $t = new Test;
    $t->numbers = array(5,5,6,7,23,4,5,7);
    echo (count($t->numbers)." 
    ");
    $t->howmany();
    ?>
    $this

  3. #3
    Utente di HTML.it
    Registrato dal
    Aug 2000
    residenza
    Edinburgh
    Messaggi
    401
    Ecco... lo sapevo che era una roba idiota... vabbe'!

    Ma quindi per accedere ad un membro di una classe all'interno di un metodo devo sempre usare this? Non prende in automatico la classe come scope?

    Visto che ci siamo, un'altra cosa: i metodi devono essere per forza definiti insieme alla classe? Non li posso definire separatamente come si fa ad es. in C++?

    intendo qualcosa tipo:
    codice:
    class X
     {
     function f1();
     }
    
    function X::f1()
     {
     ....
     }

  4. #4
    Originariamente inviato da nICO80
    Ma quindi per accedere ad un membro di una classe all'interno di un metodo devo sempre usare this?
    se sono constanti devi usare self:: all' interno della classe


    Originariamente inviato da nICO80
    Non prende in automatico la classe come scope?
    no però (almeno) ti permette sempre di dichiarare variabili temporanee con lo stesso nome di quelle $this

    class X{ var $p; function X(){ $this->p = 1; $p = 2; echo $p; } }


    Originariamente inviato da nICO80
    i metodi devono essere per forza definiti insieme alla classe? Non li posso definire separatamente come si fa ad es. in C++?
    no, ci sono dei modi per raggirare il problema ... ma sono tutti molto macchinosi e spesso incompleti (il create_function non prende lo scope della classe, per esempio)
    Formaldehyde a new Ajax PHP Zero Config Error Debugger

    WebReflection @WebReflection

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2025 vBulletin Solutions, Inc. All rights reserved.