Показать сообщение отдельно
Старый 04.04.2004, 04:20     # 12
sky7
Member
 
Аватар для sky7
 
Регистрация: 02.05.2003
Адрес: Бельгия
Сообщения: 201

sky7 Путь к славе только начался
В предыдущем случае, прежде чем вызывать переменную её надо эвалюировать ( термином LISPа - это язык такой ... с круглыми скобками (; )

Для эвалюации и используется ${имя_переменной_как_строка}

( И почему нет? Я даже спецом проверил ... оба варианта работают )

Мало того

Цитата:
будет считать что $sel[01] до $sel[10] = "selected";

for ($i=1; $i<10; $i++) {
print "<option $sel[".sprintf("%02d", $i)."]>";
}
В этом случае
PHP код:
//for ($i=1; $i<10; $i++) $sel[$i] = "selected";

for ($i=1$i<10$i++) {echo "<option  ".$sel[$i]." >";} 
твой sprintf будет возвращать строчку для print'а а не для индексации массива ( видимо, да и по-логике, сначала в строках ищутся переменные, а только потом строки складываются для передачи в print () ).

Отсюда ошибка: Parse error: parse error, unexpected '\"', expecting T_STRING or T_VARIABLE or T_NUM_STRING , что по-русски - он ждал индексации массива, так как нашел "[", а индексации не произошло.

Объясни на словах, что ты хочешь добиться?

PS Да, и старайся таки следовать принципу KISS.. Это и так плохой стиль, а ещё усложнять.... хотя смотри сам.



Добавлено через 14 минут:
Или, уж если очень хочется с 01 -09 то
PHP код:
//for ($i=1; $i<10; $i++) $sel[sprintf("%02d", $i)] = "selected";
   
for ($i=1$i<10$i++) print "<option ".$sel[sprintf("%02d"$i)].">"
Проверил. Работает.

Последний раз редактировалось sky7; 04.04.2004 в 04:08.
sky7 вне форума