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

    Funzione che stampa linea in cui viene chiamata

    Ciao,
    vorrei creare una funzione che restituisce la linea in cui viene chiamata.
    Usando

    Codice PHP:
    function getLine() {
        return 
    __LINE__;

    ovviamente ottengo il valore della linea in cui si trova la costante __LINE__ nella funzione; ho provato allora ad usare eval():

    Codice PHP:
    function getLine() {
        
    $a "echo \"linea \".__LINE__;";
        eval(
    $a);
    }
    getLine(); 
    ma stampa sempre "linea 1".
    Come mai? E come potrei risolvere?
    Emanuele DG
    <?php echo "Proverbio zen(d): vivi ogni giorno come se fosse il ".date('d M Y', time()); ?>
    Intellectual property

  2. #2
    Utente di HTML.it L'avatar di Luke70
    Registrato dal
    Jul 1999
    Messaggi
    767
    Non ho tempo di provarla, ma credo possa funzionare così

    Codice PHP:
    function getLine(a) { 
        echo 
    $a;  





    getLine(__LINE__

  3. #3
    Originariamente inviato da Luke70
    Non ho tempo di provarla, ma credo possa funzionare così

    Codice PHP:
    function getLine(a) { 
        echo 
    $a;  





    getLine(__LINE__
    Sì, ma in questo caso fai prima a scrivere direttamente echo __LINE__;
    la funzione non ti fa risparmiare nulla così.

    Io ho la necessità di ottenere la linea al richiamo di una funzione che in realtà è un metodo all'interno di una classe, ma per avere un'interfaccia pulita devo alleggerire l'utente dell'interfaccia di preoccuparsi di passare parametri come __LINE__ al metodo, oltre a quelli strettamente legati all'operazione da eseguire.
    Emanuele DG
    <?php echo "Proverbio zen(d): vivi ogni giorno come se fosse il ".date('d M Y', time()); ?>
    Intellectual property

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.