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

    Cannot pass parameter by reference

    Ciao a tutti,

    Ho un problema dalla quale non ne sto potendo uscire !

    Allora, io ho questo pezzo di codice:
    Codice PHP:
     <?php
    class loader {
        static function 
    load($type,$name,&$var=false)
        {
    $filename $name '.php';
        
    $file ROOT '/system/functions/' $filename;

        if (
    file_exists($file) == false)
        {
            return 
    false;
        }
      if (
    $var!=false) { 
      
    $var=$var;
      echo 
    $var;
      }
      include (
    $file);
     
      }
    Lo richiamo così:
    loader.load('Class','NomeFile','Stringa');

    Però non funziona perchè mi da un errore proprio nel passaggio del 3° parametro !

    Mi serve necessariamente &$var (passaggio per referenza), ma nello stesso tempo vorrei poter passare anche stringhe.... come posso fare ?

  2. #2
    up

  3. #3
    Utente di HTML.it
    Registrato dal
    Sep 2010
    Messaggi
    570
    se non ricordo male non puoi dare un valore di default ad un parametro che passi per referenza

    edit:
    ok ho ricontrollato la mia vecchia mole di papiri :P
    puoi dare un valore di default ad un parametro che passi per referenza solo se stai usando php5
    php4 non lo permette

  4. #4
    Il problema e' fondamentalmente concettuale. Il passaggio per reference serve quando devi modificare la variabile che passi all'interno della funzione, quindi non ha senso (ne' e' sintatticamente corretto) passare una stringa per reference.

    Bisognerebbe capire perche' serve il passaggio per reference in questo caso (dal codice non e' chiaro, anzi il codice e' abbastanza privo di senso).

  5. #5
    Non puoi passare una stringa nuda e cruda.
    Al limite devi fare questo:

    Codice PHP:
    $stringa'Stringa';
    loader::load('Class','NomeFile',$stringa); 
    Ti consiglio di usare la L maiuscola per loader,

  6. #6
    Utente di HTML.it
    Registrato dal
    Sep 2010
    Messaggi
    570
    lol, non ci avevo fatto proprio caso che non stesse inviando una variabile alla funzione ma una stringa e basta

  7. #7
    Grazie a tutti per l'aiuto..

    Ho fatto come dice chumkiu e ha funzionato.

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.