Ben parantez olmadan arayabilecek bir PHP işlevini oluşturabilir miyim?

4 Cevap php

Ben etkili baskı için bir yedek bir işlevi var, ve ben sadece baskı çağrı gibi, parantez olmadan onu aramak istiyorum.

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

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

Perl, parametre şablonları ile değişmezler oluşturabilir ve siz bir alt yordam tanımlamak eğer tam olarak bu davranışa izin

sub myprint(@) { ... }

PHP benzer bir şey?

4 Cevap

baskı bir variable functions değil

Because this is a language construct and not a function, it cannot be called using variable functions

Ve:

Değişkenli fonksiyonlar

PHP supports the concept of variable functions. This means that if a variable name has parentheses appended to it, PHP will look for a function with the same name as whatever the variable evaluates to, and will attempt to execute it. Among other things, this can be used to implement callbacks, function tables, and so forth.

Sadece PHP kod temeli düzenleme ve yeni bir dil yapısı ekleyerek.


: Ben böyle bir şey yapmak için bir echoh kod için bir yol arıyordu

echoh "hello";

ve olsun:

'hello<br>\n'.

Ben bir çözüm sabit tanımlama ve kullanmak olabilir sanırım:

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

Şimdi olsun:

Hello<br>

Ben daha çok yazarak gerektirir biliyorum, ama PHP kılavuzda örneklerle daha uyumluydu ve ben yazarak kaydetmek için omnicomplete ile gvim kullanın. Ayrıca PHP_BR_EOL tarafından PHP_EOL değiştirin / global bir arama yapmak kolay olurdu.

Hayır, PHP bunu izin vermez.