Domanda

Ho una funzione che è effettivamente un sostituto per la stampa e voglio chiamarla senza parentesi, proprio come chiamare print.

# Replace
print $foo, $bar, "\n";

# with
myprint $foo, $bar, "\n";

In Perl, è possibile creare subroutine con modelli di parametri e consente esattamente questo comportamento se si definisce una subroutine come

sub myprint(@) { ... }

Qualcosa di simile in PHP?

È stato utile?

Soluzione

print non è una funzioni variabili

  

Perché questo è un costrutto di linguaggio   e non una funzione, non può essere   chiamato usando funzioni variabili

E:

  

Funzioni variabili

     

PHP supporta il concetto di variabile   funzioni. Ciò significa che se a   il nome della variabile ha le parentesi aggiunte   ad esso, PHP cercherà una funzione   con lo stesso nome di qualunque sia il   la variabile valuta e lo farà   tenta di eseguirlo. Tra l'altro   cose, questo può essere usato per implementare   richiamate, tabelle delle funzioni e così via   via.

Altri suggerimenti

Solo modificando la base di codice PHP e aggiungendo un nuovo costrutto per la lingua.

-Adam

No, non puoi farlo in PHP. La stampa non è in realtà una funzione, è un "linguaggio costruttivo" " ;.

No, PHP non ti permetterà di farlo.

Stavo cercando un modo per codificare un eco per fare qualcosa del tipo:

echoh "hello";

e ottieni:

'hello<br>\n'.

Suppongo che una soluzione potrebbe essere quella di definire una costante e usarla:

<?php
const PHP_BR_EOL = "<br>\n";
echo "Hello" . PHP_BR_EOL;
?>

Ora ricevo:

Hello<br>

So che richiede una maggiore digitazione, ma è più compatibile con gli esempi del manuale di PHP e uso gvim con omnicomplete per salvare la digitazione. Inoltre sarebbe facile fare una ricerca globale / sostituire PHP_EOL con PHP_BR_EOL.

Questo può essere fatto con PHP. Le funzioni dichiarate devono essere chiamate tra parentesi

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top