Visualizzazione dei risultati da 1 a 3 su 3
  1. #1

    Quando usare il $ e quando no?

    Sia nel primo libro che in questo secondo che sto leggemdo non viene detto nulla in merito all'uso del dollaro quasi come fosse una questione sottintesa. Nel primo libro si dice solo che $ sta per modificabile ma a me risulta che se una variabile non é definita come final può essere comunque ancora modificata.

    Qui il metodo che mi ha fatto riflettere:

    Codice PHP:
    <?php
    class Person {
    private 
    $_name;
    private 
    $_age;
    function 
    __set$property$value ) {
    $method "set{$property}";
    if ( 
    method_exists$this$method ) ) {
    return 
    $this->$method$value );
    }
    }
    function 
    setName$name ) {
    $this->_name $name;
    if ( ! 
    is_null$name ) ) {
    $this->_name strtoupper($this->_name);
    }
    }
    function 
    setAge$age ) {
    $this->_age strtoupper($age);
    }
    function 
    stampanome(){
        print 
    $this->_name;
        }
    }
    $p = new Person();
    $p->name "bob";
    $p->stampanome();
    Per esempio se scrivo:

    Codice PHP:
    function setName$name ) {
    $this->$_name $name;
    if ( ! 
    is_null$name ) ) {
    $this->$_name strtoupper($this->$_name);
    }

    o anche:

    Codice PHP:
    $p->$name "bob"
    ottengo:

    Notice: Undefined variable: name in C:\xampp\htdocs\index.php on line 25
    Più pratica in futuro...

  2. #2
    Moderatore di PHP L'avatar di Alhazred
    Registrato dal
    Oct 2003
    Messaggi
    12,445
    Ci stai capendo tanto dai tuoi amati libri.

    Il $ ci vuole se si tratta di una normale variabile e la usi come tale, non ci vuole se si tratta di una proprietà di un oggetto e ci accedi con l'operatore ->

    quindi nel tuo esempio se hai
    private $_name;

    devi poi usare per forza
    $p->name = 'BOB';

  3. #3
    Quote Originariamente inviata da Alhazred Visualizza il messaggio
    Ci stai capendo tanto dai tuoi amati libri.

    Il $ ci vuole se si tratta di una normale variabile e la usi come tale, non ci vuole se si tratta di una proprietà di un oggetto e ci accedi con l'operatore ->

    quindi nel tuo esempio se hai
    private $_name;

    devi poi usare per forza
    $p->name = 'BOB';
    Ora è più chiaro, grazie, però php se la poteva risparmiare questa complicazione.
    Più pratica in futuro...

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 © 2024 vBulletin Solutions, Inc. All rights reserved.