2013-03-22 2 views
0

У меня есть функция, называемая getSources(); В этой функции я хочу легко присвоить числа константам. Я полагал, что это будет работать:PHP: Невозможно назначить константу в функции?

const A = 1; 
const B = 2; 
const C = 3; 
const D = 4; 

И я мог бы просто сделать это:

$someValue = A; 

Но это не работает. Что мне не хватает? Я не хочу, чтобы эти переменные использовались вне сферы действия этой функции.

+0

вы пытались с помощью 'определить () '..? –

+0

Константа - это не переменная, и вы не можете ограничить их сферу действия функцией. Они всегда находятся в глобальном масштабе, независимо от того, где вы их определяете. –

ответ

3

Используйте вместо этого определение.

define('A', 1); 
+0

Но разве это глобальное? Или он будет доступен только в функции? – coderama

+0

Глобальный курс. Читала ли ваша документация о [константах] (http://php.net/manual/en/language.constants.php)? – sectus

0

Вы должны использовать оператор разрешения области видимости (::) для доступа к ним (если они установки как const для класса).

В противном случае вам необходимо использовать define(), что делает идентификаторы глобальными.

1

попробовать

define('myname', 'myvalue'); 
echo myname; 

// Выходные данные

myvalue 
0

вы можете сделать, как этот

function getSources() 
{ 
    define(A,1); 
    define(B,2); 
    .... 
} 

как это можно решить

Смежные вопросы