PHP 7.2.0 Beta 1 Released


(PECL apc >= 3.0.0)

apc_define_constants مجموعه‌ای از ثوابت برای بازیابی و تعریف گسترده فراهم می‌کند.


bool apc_define_constants ( string $key , array $constants [, bool $case_sensitive = true ] )

define() به شدت کند است. چون که فایده اصلی APC برای افزایش کارایی اسکریپت‌ها/برنامه‌ها است، این ساز و کار فراهم شده است تا فرایند تعریف گسترده ثابت‌ها پربازده‌تر شود. به هر حال این تابع به خوبی عمل نمی‌نماید.

برای یک راه حل بهتر ضمیمه » hidef از PECL را امتحان کنید.

Note: برای حذف یک مجموعه ثوابت ذخیره شده (بدون پاک کردن کامل کاشه)، یک آرایه خالی به عنوان پارامتر constants ارسال خواهد شد و به صورت موثری مقادیر ذخیره شده را پاک می‌کند.



key به عنوان نام مجموعه ثابت ذخیره شده عمل می‌نماید. این key برای بازیابی ثابت‌های ذخیره شده در apc_load_constants() استفاده خواهد شد.


An associative array of constant_name => value pairs. The constant_name must follow the normal constant naming rules. value must evaluate to a scalar value.


رفتار پیشفرض ثابت‌ها به صورت حساس به بزرگی و کوچکی باید تعیین شود، به عنوان مثال CONSTANT و Constant نشان‌دهنده دو مقدار متفاوت هستند. اگر این پارامتر برابر با FALSE ارزیابی گردد ثابت‌ها به صورت نشان‌های غیرحساس به بزرگی و کوچکی اعلام خواهند شد.

Return Values

Returns TRUE on success or FALSE on failure.


Example #1 مثال apc_define_constants()

= array(
'ONE'   => 1,
'TWO'   => 2,
'THREE' => 3,

The above example will output:


See Also

add a note add a note

User Contributed Notes 2 notes

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

if (function_exists('apc_load_constants')) {
define_array($key, $arr, $case_sensitive = true)
        if (!
apc_load_constants($key, $case_sensitive)) {
apc_define_constants($key, $arr, $case_sensitive);
} else {
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));
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