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

    Costanti magiche da funzione in file incluso

    Ciao A tutti,
    per motivi di debug, ho avuto la necessità di scrivere una piccola funzione di debug simile alla print_r(). La mia funzione mydebug() è inserita nel file lib.php e questo file viene incluso nei mie script php in modo da poterla richiamare:

    <file1.php>
    codice:
    include("lib.php")
    
    $a=array(1,2,3,4);
    fuction b($a)
    {
    mydebug($a);
    }
    
    b($a);
    Problema : quando i file che usano la mydebug() sono grossi e pieni di funzioni o classi, diventa difficile andare a capire dove ho inserito la mia funzione, pertanto ho pensato di stampare sempre le costanti magiche in cima

    codice:
     
    function mydebug($array="")
    {
    echo "__FILE__:".__FILE__."
    ";
    echo "__FUNCTION__:".__FUNCTION__."
    ";
    print_r($array);
    }
    Le informazioni che verranno stampate da mydebug() saranno sempre quelle relative al file lib.php e a mydebug e non del file in cui è stata lanciata la fuzione (file1.php)

    STAMPA di file1.php
    __FUNCTION__: mydebug
    __FILE__: /data/httpd01/html/lib.php

    INVECE VORREI
    STAMPA di file1.php
    __FUNCTION__: b
    __FILE__: /data/httpd01/html/file1.php
    Luca Bottoni's World
    www.bottonisworld.com

  2. #2
    Utente di HTML.it L'avatar di Laxus
    Registrato dal
    Oct 2010
    Messaggi
    251
    Codice PHP:
    function mydebug($array$file$func)
    {
    echo 
    "__FILE__:".$file."
    "
    ;
    echo 
    "__FUNCTION__:".$func."
    "
    ;

    print_r($array);
    }

    mydebug($var__FILE____FUNCTION__); 

  3. #3
    Grazie per la risposta, si so che quel modo funziona, ma la mia soluzione ideale è quella di non passare quei valori, ma la funzione mydebug li riceve automaticamente.

    ho anche provato:
    Codice PHP:
    function mydebug($array="",$func=__FUNCTION__,$file=__FILE__)
    {
    echo 
    "__FILE__:".$file."
    "
    ;
    echo 
    "__FUNCTION__:".$func."
    "
    ;
    print_r($array);

    Ma il risultato non cambia chiaramente, perchè il default è ricavato sempre dal file lib.php
    Luca Bottoni's World
    www.bottonisworld.com

  4. #4
    Codice PHP:
    function mydebug() {
        
    print_r(debug_backtrace());

    oppure

    Codice PHP:
    function mydebug() {
        
    debug_print_backtrace();


  5. #5
    ooooohhhhh sapevo che il php aveva qualcosa per farlo!!!era solo beccarla la funzione giusta

    veramente grazie k.b
    Luca Bottoni's World
    www.bottonisworld.com

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.