Visualizzazione dei risultati da 1 a 9 su 9
  1. #1
    Utente di HTML.it
    Registrato dal
    Dec 2003
    Messaggi
    53

    include in una function

    Ciao a tutti,
    è possibile utilizzare include o require all'interno di una function?
    Esempio:
    codice:
    function prova(){
    $var = "ciao";
    include 'modifica.php';
    return $var;
    }
    modifica.php
    codice:
    <?
    $var = "notte";
    ?>
    Il file di include non mi modifica la variabile... come mai?

  2. #2
    Utente di HTML.it
    Registrato dal
    Nov 2002
    Messaggi
    28
    Non so, dovrebbe modificarla.

  3. #3
    Utente di HTML.it
    Registrato dal
    Apr 2003
    Messaggi
    534
    Perchè la variabile dichiarata nella funzione è visibile solo all'interno della funzione e non esiste fuori da quel contesto. Quindi le due $var hanno vita autonoma pur avendo lo stesso nome.

    Se vuoi poter modificare la variabile "esterna" all'interno della funzione la devi passare per "riferimento":

    function prova(&$var){

    Altri modi sono: dichiarare globale la $var, oppure passaggio per valore. Ma quest'ultimo non modificherà la variabile esterna.
    Un'occhiata al manuale.

    http://www.php.net/manual/it/functions.php
    http://www.php.net/manual/it/language.references.php


  4. #4
    Utente di HTML.it L'avatar di badaze
    Registrato dal
    Jun 2002
    residenza
    Lyon
    Messaggi
    5,372
    Originariamente inviato da pierotto
    Perchè la variabile dichiarata nella funzione è visibile solo all'interno della funzione e non esiste fuori da quel contesto. Quindi le due $var hanno vita autonoma pur avendo lo stesso nome.

    Se vuoi poter modificare la variabile "esterna" all'interno della funzione la devi passare per "riferimento":

    function prova(&$var){

    Altri modi sono: dichiarare globale la $var, oppure passaggio per valore. Ma quest'ultimo non modificherà la variabile esterna.
    Un'occhiata al manuale.

    http://www.php.net/manual/it/functions.php
    http://www.php.net/manual/it/language.references.php

    Ma nel caso di hph non si tratta di una funzione ma di un include. Come dice ZackS la variabile dovrebbe essere modificata.... e di fatti viene modificata. Quindi il problema è altrove.

  5. #5
    Utente di HTML.it
    Registrato dal
    Nov 2002
    Messaggi
    28
    Ho fatto una prova e funziona:

    codice:
    function prova(){
    $var = "ciao";
    include 'modifica.php';
    echo $var;
    }

  6. #6
    Utente di HTML.it
    Registrato dal
    Apr 2003
    Messaggi
    534
    Originariamente inviato da badaze
    Ma nel caso di hph non si tratta di una funzione ma di un include. Come dice ZackS la variabile dovrebbe essere modificata.... e di fatti viene modificata. Quindi il problema è altrove.
    Se fosse così avrei capito male. Ma dato che è impossibile che la variabile non renda "notte" dell'include, pensavo si aspettasse di veder modificata una variabile con lo stesso nome dello script.

    che poi sia un include non dice nulla, fa parte della funzione.


  7. #7
    Utente di HTML.it L'avatar di badaze
    Registrato dal
    Jun 2002
    residenza
    Lyon
    Messaggi
    5,372
    Originariamente inviato da pierotto
    Se fosse così avrei capito male. Ma dato che è impossibile che la variabile non renda "notte" dell'include, pensavo si aspettasse di veder modificata una variabile con lo stesso nome dello script.

    che poi sia un include non dice nulla, fa parte della funzione.

    Beh ho testato a partire dai forniti e funge !!!

  8. #8
    Utente di HTML.it
    Registrato dal
    Apr 2003
    Messaggi
    534
    Originariamente inviato da badaze
    Beh ho testato a partire dai forniti e funge !!!
    Non ho provato, ma vedendo appunto i dati forniti ero sicuro che funzionasse e mi ero quindi convinto a dare quella risposta.


  9. #9
    Utente di HTML.it
    Registrato dal
    Dec 2003
    Messaggi
    53
    si, avete ragione...
    si vede che avevo sbagliato qualcosa...
    grazie mille!

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.