[ Поиск ] - [ Пользователи ] - [ Календарь ]
Полная Версия: php не видит строковые константы
skolozhabskiy
доброй ночи.

есть две константы, определеные как

define('ZAZA','dddddddddd');
define('SASA', 'aaaaaaaaa');


мне нужно подставить значения этих констант в функцию, например

[php]function myfunc($z, $s)
{
$str = ZAZA;
$str .= SASA;
return $str;
}

echo myfunc('.ZAZA.','.SASA.');

в итоге я должен получить = 'ddddddddddaaaaaaaaa', а получаю 'zazasasa', то есть константы не читаются.

пробовал так, например, constant('zaza')- результат тот же php не видит константы.

в чем моя ошибка?

спасибо за любую помощь



Спустя 12 минут, 55 секунд (1.06.2011 - 01:57) inpost написал(а):
skolozhabskiy
1) константы указывай большими буквами, чтобы выделять их среди имён функций. (это совет).
2) константы не надо обрамлять в кавычки, когда выводишь: $srt = ZAZA;

Спустя 20 минут, 55 секунд (1.06.2011 - 02:18) skolozhabskiy написал(а):
вы все верно пишите, так и делал - верхний регистр и без кавычек, все равно не видит просто читает их как есть и все. в чем может быть проблема? спасибо.

P.S. азы мне понятны, можете дать профессиональный совет хоть в какой области это смотреть?

Спустя 26 минут, 43 секунды (1.06.2011 - 02:44) inpost написал(а):
skolozhabskiy
Создай файл, в нём сразу константу, за ней функцию, за ней вывод, и код скопируй сюда, а не вырезанные фразы

Спустя 39 секунд (1.06.2011 - 02:45) Lightt написал(а):
Выводи так -

define('ZAZA','dddddddddd');
define('SASA', 'aaaaaaaaa');



function myfunc($z, $s)
{
$str = ZAZA;
$str .= SASA;
return $str;
}

echo myfunc($z, $s) ."<br>";


Или так =)

echo  ZAZA .SASA; 

Спустя 5 минут, 32 секунды (1.06.2011 - 02:51) inpost написал(а):
Lightt
Эх, сделал за него то, что я хотел от него добиться smile.gif

Спустя 5 минут, 23 секунды (1.06.2011 - 02:56) Lightt написал(а):
Да ночь же =) бывет такие тупняки ловишь...
Сам часто из за какой нибудь ерунды мог долго сидеть, которую на утро делал за 5 минут )

Спустя 4 часа, 39 минут, 8 секунд (1.06.2011 - 07:35) skolozhabskiy написал(а):
доброе утро, спасибо за подсказки, но это не решение проблемы.

ошибка в том, что константа не определена, хотя в define все прописано правильно.
php не видит константу и интерпретирует ее как имя.

приводить функцию нет смысла, так это просто пример, константа это языковая константа в файлах en.php и ru.php, например

define('STRING_WELCOME', 'Welcome!');
define('STRING_WELCOME', 'Добро пожаловать!');


загружаются они в шапке index.php (include("translation/$lan"), где $lan - переменная коммутирующая переключение языка выбора файля языкового), а читаться должны в файле обработки кода test.php (код работает нормально, только константу не видно в этом файле). сам код test.php принципиального значения не имеет, если в нем поставить такое условие:

 if (!defined(STRING_WELCOME)) {
define('STRING_WELCOME', 'Добро пожаловать!');
}


то все работает отлично и константа определена, но это не решает проблему так как определяет константу к одному языку и при переключении, например к англ. языку, значение останется тоже.

при таком подключении языковых файлов :

include 'translation/$lanphp';
константы во всем проекте и во свсех файлах неопределены, а так
 include "translation/$lanphp";
или так :
include 'translation/'.$lanphp.'';
определены везде, кроме test.php, о котором я писал.

может кто-то подскажет путь решения проблемы, может как-то нужно определить константу по другому, через класс или еще как? если можно небольшой пример.


спасибо за помощь.

Спустя 1 час, 2 минуты, 6 секунд (1.06.2011 - 08:37) inpost написал(а):
skolozhabskiy
Ты шутишь?
define('STRING_WELCOME'', 'Добро пожаловать!'); - уже грамматическая ошибка, как возможно "то все работает отлично" ?

Спустя 8 минут, 53 секунды (1.06.2011 - 08:46) skolozhabskiy написал(а):
это же просто описка. все исправил уже в посте предыдущем. может кто-то серьезно поможет с решением проблемы?

спасибо

Спустя 20 минут, 32 секунды (1.06.2011 - 09:07) inpost написал(а):
skolozhabskiy
я 2 раза перечитал, так и не понял, что ты там замудрил, возможно просто сонный, но кто из какого куда и зачем открывается...
Если определил её до её использования - значит она уже определена, сегодня был похожий баг, оказалось в имени допустил грамматическую ошибку, советую и тебе проверить на имя, раз ты везде допускаешь ошибки.
Хотя на 90% уверен, что ты сначала пытаешься вывести, а уже потом определить, а должно быть наоборот. test идёт раньше подключения языка.

А по теме, давай код - дадим ошибку, а не мелкие выдержки. ПХП сам по себе работает правильно, проблема всегда в кривизне рук, а не видя эту кривизну с твоей стороны невозможно тебе помочь.

Спустя 3 часа, 55 минут, 9 секунд (1.06.2011 - 13:02) Игорь_Vasinsky написал(а):
Цитата
function myfunc($z, $s)
{
    $str = ZAZA;
    $str .= SASA;
   
    return $str;
}

echo myfunc('.ZAZA.','.SASA.');


во первых - ты используешь аргументы $z, $s - поэтому подставляя - в ковычках
echo myfunc('.ZAZA.','.SASA.');


если у тя константы предопределены, зачем пытаться сменить их через аргументы?

у тя распознаются как значение аргументов, поэтому и белиберда, наверное

если я не ошибаюсь (просто не использовал константы в функциях) у констант глобальная зона видимости, поэтому:

function myfunc()
{
$str = ZAZA.SASA;

return $str;
}

echo myfunc();


или

function myfunc($z, $s)
{
$str = $z.$s;

return $str;
}

echo myfunc("раз-","два");


как то так :)

Спустя 3 часа, 16 минут, 19 секунд (1.06.2011 - 16:18) skolozhabskiy написал(а):
спасибо, последний пост - я в предыдущем посте писал, что функция просто пример, но все равно спасибо большое за внимание. я все ак и делал. но результат тотже. очень прошу не обращать внимания на теничесие ошибки в постах. речь не о орфографической грамотности, а о конкретном вопросе с константами. еще раз всем спасибо

Спустя 8 минут, 15 секунд (1.06.2011 - 16:26) Игорь_Vasinsky написал(а):
Цитата
речь не о орфографической грамотности, а о конкретном вопросе с константами. еще раз всем спасибо


откуда мы знаем что это ты специально код корявишь? wink.gif

ПОказал бы свой реальный код, в нём и будем разбираться wink.gif

Спустя 2 часа, 23 минуты, 23 секунды (1.06.2011 - 18:50) skolozhabskiy написал(а):
специально я ничего не корявлю, просто когда бегло набираешь здесь случаются помарки. еще раз всем спасибо видимо вопрос задал очень сложно буду разбираться сам.

Спустя 14 минут, 58 секунд (1.06.2011 - 19:05) inpost написал(а):
skolozhabskiy
Давай я задам тебе встречный вопрос, если ты не ответишь на него, я скажу тебе "мой вопрос слишком сложный, и ты неудачник полнейший", или вообще что-нибудь с тобой сделаю. Вообщем я даже спрашивать разрешения у тебя не буду, задаю вопрос, жду ответа:
У меня есть скрипт, вообщем он не работает, это связано с командой preg_match и curl, помоги мне! Ещё раз, свой код показывать не буду, как ты и говоришь. Жду чёткого ответа, в чём проблема.
Быстрый ответ:

 Графические смайлики |  Показывать подпись
Здесь расположена полная версия этой страницы.
Invision Power Board © 2001-2025 Invision Power Services, Inc.