2010-03-14 10 views
26

declare PHP işleviyle biraz kafam karıştı.PHP? Bir kene nedir?

tam tek kene nedir? Bir kene bir kod satırına eşit olduğunu düşündüm?

Ama kullanırsanız:

function myfunc() { 
     print "Tick"; 
} 

register_tick_function("myfunc"); 

declare(ticks=1) { 
    echo 'foo!bar'; 
} 

komut baskılar:

"Tik" 2 Kez ??

cevap

22

Her hat için bir kene olsun; ve her blok {} o deneyin:

declare(ticks=1) echo 'foo!bar'; 

Hiçbir blok, hiçbir ekstra kene.

Daha fazla yabancı blok = daha fazla keneler.

Not: Bu arada, kene oldukça egzotik bir özelliktir ve birkaççok nadir durumlarda sadece kullanışlıdır. Onlar iş parçacığına veya başka bir şeye eşdeğer değiller. Eğer sizin için kene bir problemin çözümüyse, o zaman probleminiz hakkında başka bir soruya göndermelisiniz, çünkü bu muhtemelen doğru çözüm değildir.

+11

içeriyor Ne * can * keneler yararlı olabilir? – Pacerier

+1

Hata ayıklama sırasında profil kodu. – thomasrutter

+0

@thomasrutter Nasıl? Bir örnek veya referans verebilir misiniz? – tonix

14

Bir kene ne olduğu doğru yolda bulunmaktadır. Basitçe

http://www.tuxradar.com/practicalphp/4/21/0

, kenenin PHP dahili olarak bu tabloların belirli sayıda yürüttü her zamanında oluşan bir özel olay olduğunu. Bu ifadeler PHP iç ve gevşek betiğinizde ifadelerine gelmektedir. Sen o beyan() işlevini kullanarak bir kene yola için kaç ifadeleri kontrol edebilirsiniz ve bir kene register_tick_function() işlevini kullanarak oluştuğunda kayıt fonksiyonları yürütmek için olabilir. önce de belirtildiği gibi, bir açıklamadan sözdizimi çok sıradışı, yani bir şok hazır olun!

+1

Teşekkürler. Php.net el kitabının declare() ve * _tick_function() işlevlerindeki keneleri tanımlamadığı garip buldum. PHP6'da neden kaldırıldığını biliyor musunuz? – David

+1

Keneler PHP'ye nasıl girmiş? – Pacerier

+0

@Jayrox - "PHP6 keneler tamamen kaldırılacak" ifadesini desteklemek için herhangi bir destekleyici kanıt? – Jimbo