PHP переменная, такая как $ var ['$ var'] - PullRequest
1 голос
/ 19 апреля 2011

Сейчас я делаю сайт с фотоальбомом.Сайт на 2 языках, английском и голландском.Поэтому я сделал языковой файл, например:

$lang['hello'] = 'Hallo'; //Hallo is hello in dutch

В фотоальбоме я пытаюсь использовать тот же принцип, что и:

$lang['discription_001'] = 'photo of a house';

С показом изображений я сделал счетчик, теперь яхочу использовать тот же счетчик в изображении, например, так:

echo $lang['discription_'$counter] 

и $counter - 001 для фотографии номер один.Однако это не работает, может кто-нибудь сказать, как я мог заставить это работать, или любой другой метод, чтобы получить то, что я хочу.

Заранее спасибо, Томас де Зеув

PS Я новичок в PHP, однако обычно я довольно быстро разбираюсь с вещами, поэтому некоторые объяснения приветствуются.

Ответы [ 6 ]

6 голосов
/ 19 апреля 2011

Вы просто забыли оператор объединения строк . для объединения 'discription_' и значение $counter:

$lang['discription_'.$counter]
6 голосов
/ 19 апреля 2011

Ты почти там:

echo $lang['discription_' . $counter]

. является оператором конкатенации PHP для объединения строк.

4 голосов
/ 19 апреля 2011

У вас есть опечатка.

echo $lang['discription_'$counter]

Должно быть

echo $lang['discription_' . $counter];
2 голосов
/ 19 апреля 2011

Вы можете заставить его работать, просто восстановив свой код:

echo $lang['discription_'.$counter];

или

echo $lang["discription_{$counter}"];
1 голос
/ 19 апреля 2011

Является ли $counter строкой?Если это так, то ваш пример должен работать нормально, если вы исправите ошибку разбора (вы пропустили оператор конкатенации (.).

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

echo $lang['discription_' . $counter];

0 голосов
/ 19 апреля 2011

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

echo $lang['descriptions'][$counter];
...