php[tek] 2018 : Call for Speakers

apc_define_constants

(PECL apc >= 3.0.0)

apc_define_constants Yeniden çağırmak ve yığın tanımlama için bir grup sabit tanımlar

Açıklama

bool apc_define_constants ( string $anahtar , array $sabitler [, bool $buyukluk_duyarli = true ] )

define() işlevi herkesin bildiği gibi yavaştır. APC'nin esas faydası betik ve uygulamaların başarımını arttırmak olduğu için böyle bir mekanizma ile yığın sabit tanımlama imkanı sağlanmak istenmiştir. Bununla birlikte bu işlev beklenen başarımı sağlamamaktadır.

Daha iyi başarım sağlayan bir çözüm için, PECL'de bulunan » hidef eklentisini deneyin.

Bilginize: Bütün önbelleği temizlemeden bir grup sabiti depodan silmek için boş bir dizi, sabitler değiştirgesi olarak geçirilebilir.

Değiştirgeler

anahtar

anahtar depolanan sabitleri isimlendirmekte kullanılır. apc_load_constants() işlevine değiştirge olarak geçirilerek tanımlanan sabitlere ulaşılabilir.

sabitler

sabit_adi => deger çiftlerinden oluşan bir ilişkisel dizi. sabit_adi normal sabit isimlendirme kurallarına uymalıdır. deger sayıl (scalar) bir değer olmalıdır.

buyukluk_duyarli

İşlevin öntanımlı davranışı harf büyüklüğüne duyarlıdır, yani SABIT ile Sabit farklı değerlerdir. Eğer bu değiştirge FALSE olarak ayarlanırsa sabitler harf büyüklüğüne duyarsız sembollerle tanımlanacaktır.

Dönen Değerler

Başarı durumunda TRUE, başarısızlık durumunda FALSE döner.

Örnekler

Örnek 1 - apc_define_constants() örneği

<?php
$sabitler 
= array(
    
'BIR'   => 1,
    
'IKI'   => 2,
    
'UC'    => 3,
);
apc_define_constants('sayilar'$sabitler);
echo 
BIRIKIUC;
?>

Yukarıdaki örneğin çıktısı:

123

Ayrıca Bakınız

add a note add a note

User Contributed Notes 2 notes

up
0
jmucchiello AT yahoooooooo DOT com
7 years ago
It doesn't introduce much overhead if you make use of conditional function definitions:

<?php
if (function_exists('apc_load_constants')) {
    function
define_array($key, $arr, $case_sensitive = true)
    {
        if (!
apc_load_constants($key, $case_sensitive)) {
           
apc_define_constants($key, $arr, $case_sensitive);
        }
    }
} else {
    function
define_array($key, $arr, $case_sensitive = true)
    {
        foreach (
$arr as $name => $value)
           
define($name, $value, $case_sensitive);
    }
}

//in your code you just write something like this:

define_array('NUMBERS', Array('ONE' => 1, 'TWO' => 2, 'THREE' => 3));
?>
up
0
webmaster at thedigitalorchard dot ca
7 years ago
An observation that I've made is that the nature of apc_define_constants() binding the list of constants to a key and then requiring that key to load the constants is limiting. Furthermore, there's no way to append additional constants to a given key.

A solution that I've been adopting is to build a list of constants to be defined, and then do one of two things:

1) if APC is enabled, then use apc_define_constants();
2) ...else loop through the list and define each constant normally.

The problem I've run into is when this process happens at different places in a large application, it can introduce overhead that otherwise wouldn't be there if it was possible to append to an existing list of defined constants in APC.
To Top