Visualizzazione dei risultati da 1 a 5 su 5
  1. #1
    Utente di HTML.it
    Registrato dal
    Jun 2002
    Messaggi
    23

    Riferimento facoltativo

    Dovrei creare una funzione a cui tra i vari argomenti bisogna passarne uno che è un riferimento, il problema è che tale argomento dovrebbe essere facoltativo o meglio predefinito.

    Per ora faccio così:

    Codice PHP:
    function test(&$var)
    {
        if(!isset(
    $var))
             
    $var = &$GLOBALS['altraVar'];

        
    ecc..

    funziona ma crea un warning che mi sta maledettamente antipatico, quindi mi chiedo c'è un'altro modo?

    dimenticavo, è php4

  2. #2
    Verifica prima se è settata $var, se sì esegui la funzione

  3. #3
    Quello che chiedi di fare puo' essere fatto solo con PHP5:

    function test(&$var = '') {

    }

  4. #4
    sì, ma io dicevo di verificarlo con l'if

    if(isset($var))
    {
    function .....
    }

  5. #5
    Facendo cosi' la funzione verra' definita solamente se $var (una variabile globale e non il parametro della funzione) esiste, per cui la funzione non potra' essere richiamata a meno di definire $var.

    Codice PHP:
    <?php 
    if(isset($var))
    {
        function 
    test(&$var) {
            echo(
    $var);
        }
    }

    $value 'Hello World!';
    test($value);
    ?>
    Il codice qui' sopra solleva un Fatal error: Call to undefined function.

    Il codice qui' sotto, eseguito con PHP 5, fa esattamente quello che Egeron chiede (" Dovrei creare una funzione a cui tra i vari argomenti bisogna passarne uno che è un riferimento, il problema è che tale argomento dovrebbe essere facoltativo o meglio predefinito."):

    Codice PHP:
    <?php 
    function test(&$var null) {
        
    var_dump($var);
    }

    $value 'Hello World!';
    test($value);
    test();
    ?>

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.