Форум программистов, компьютерный форум, киберфорум
PHP для начинающих
Войти
Регистрация
Восстановить пароль
Карта форума Темы раздела Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 5.00/6: Рейтинг темы: голосов - 6, средняя оценка - 5.00
3 / 3 / 2
Регистрация: 22.03.2015
Сообщений: 38
1

$$var как параметр цикла for

04.12.2019, 16:05. Показов 1139. Ответов 3
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
Что не так с этим кодом?
PHP
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
<?php
 error_reporting(E_ALL);
 $a = array (
  1, 2, 3, 4,
  5, 6, 7, 8,
  9,10,11,12
 );
 $p = array ('i'=>3,'j'=>4);  //Размерность матрицы
 if (isset($_GET['t'])) $p = array_reverse ($p);
 $keys = array_keys($p);
 $i = $keys[0]; $i2 = $p[$i];
 $j = $keys[1]; $j2 = $p[$j]; //Порядок циклов
 //echo "$i,$i2,$j,$j2";
 echo '<pre>';
 for ($$i = 0, $k = 0; $$i < $i2; $$i++) {
  for ($$j = 0; $$j < $j2; $$j++) echo $a[$k++].' ';
  echo "\n";
 }
 echo '</pre>';
?>
Если запустить в виде http://localhost/cycles2.php?t , то есть, с аргументом, печатает, как ожидалось
1 2 3
4 5 6
7 8 9
10 11 12
Если же http://localhost/cycles2.php , то
Notice: Undefined variable: 0 in D:\xampp\htdocs\cycles2.php on line 15



Notice: Undefined variable: 0 in D:\xampp\htdocs\cycles2.php on line 16

1

Notice: Undefined variable: 0 in D:\xampp\htdocs\cycles2.php on line 16

2 3 4
Локалхост на XAMPP с PHP7 или удаленный хост с PHP5.X - одинаково

Вроде же только порядок циклов должен поменяться?
0
Лучшие ответы (1)
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
04.12.2019, 16:05
Ответы с готовыми решениями:

Как сцепить строки? Например <? $var='Ура!'; $var=$var+' Еще раз...'; echo $var; ?>
Вот пример: &lt;? $var='Ура!'; $var=$var+' Еще раз...'; echo $var; ?&gt; Выводит Ура!0

Скрипты перестали различать $_POST['var'], $_SESSION['var'] и просто $var
После переезда на новый хостинг с php 5.2 на php 5.3 обнаружил глюк. Почему то скрипты перестали...

Program1.pas(7): Параметр цикла for в PascalABC.NET должен описываться в заголовке цикла. Как исправить?
Program1.pas(7) : Параметр цикла for в PascalABC.NET должен описываться в заголовке цикла. Как...

"Параметр цикла for должен описываться в заголовке цикла", как исправить?
Люди! Пожалуйста помогите исправить ошибку: &quot;Параметр цикла for в pascalABC.net должен описываться...

3
1113 / 554 / 320
Регистрация: 21.06.2012
Сообщений: 1,854
04.12.2019, 16:18 2
Лучший ответ Сообщение было отмечено Nubby как решение

Решение

все $$ меняем на $
1
3 / 3 / 2
Регистрация: 22.03.2015
Сообщений: 38
04.12.2019, 16:31  [ТС] 3
помогло, спасибо... то есть, $$var не может быть параметром цикла?
а почему тогда вот это работает?.. (из другого варианта)

PHP
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
<?php
 $p = array ('i','j');
 if (isset($_GET['p'])) {
  if ($_GET['p']=='ji') $p = array ('j','i');
 }
 $n = 5; $m = 4; //Размерность таблицы
 $rows = $p[0];
 $cols = $p[1]; //Порядок циклов
 echo '<table  style="border-collapse: collapse;">';
 for ($$rows=1; $$rows<=$n; $$rows++) {
  echo '<tr>'; 
  for ($$cols=1; $$cols<=$m; $$cols++) {
   echo '<td style="border: 1px dotted black">'.$i.','.$j.'</td>';
 }
  echo '</tr>';
 }
 echo '</table>';
?>
Без параметра или http://localhost/cycles.php?p=ij
1,1 1,2 1,3 1,4
2,1 2,2 2,3 2,4
3,1 3,2 3,3 3,4
4,1 4,2 4,3 4,4
5,1 5,2 5,3 5,4
http://localhost/cycles.php?p=ji
1,1 2,1 3,1 4,1
1,2 2,2 3,2 4,2
1,3 2,3 3,3 4,3
1,4 2,4 3,4 4,4
1,5 2,5 3,5 4,5
вроде и доходит, что есть "переменная переменных", а ясности все равно нет

Добавлено через 6 минут
Тьфу, кажется дошло... всё дело в 'i' и '$i'... если буквы поменять, будет и первый код работать с $$

PHP
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
<?php
 error_reporting(E_ALL);
 $a = array (
  1, 2, 3, 4,
  5, 6, 7, 8,
  9,10,11,12
 );
 $p = array ('i'=>3,'j'=>4);  //Размерность матрицы
 if (isset($_GET['t'])) $p = array_reverse ($p);
 $keys = array_keys($p);
 $r = $keys[0]; $i2 = $p[$r];
 $c = $keys[1]; $j2 = $p[$c]; //Порядок циклов
 echo '<pre>';
 for ($$r = 0, $k = 0; $$r < $i2; $$r++) {
  for ($$c = 0; $$c < $j2; $$c++) echo $a[$k++].' ';
  echo "\n";
 }
 echo '</pre>';
?>
0
1113 / 554 / 320
Регистрация: 21.06.2012
Сообщений: 1,854
04.12.2019, 17:19 4
Цитата Сообщение от Nubby Посмотреть сообщение
вроде и доходит, что есть "переменная переменных", а ясности все равно нет
в php нельзя давать имена переменным начинающимся с цифр.
PHP
1
2
3
$1 = 1; //ошибка 
$v = 1; //правильно
$v1 = 1; //правильно
0
04.12.2019, 17:19
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
04.12.2019, 17:19
Помогаю со студенческими работами здесь

Ошибка "Данный объект не может быть передан как var-параметр"
USES crt; TYPE vmass = array of real; vfv = function (x:real):real; vfc =...

Игнорировать var - параметр в функции
В общем, сижу перевожу свой С++ код на Delphi. Возникла следующая загвоздка - в коде используется...

Zc.pas(16) : Параметр цикла for в PascalABC.NET должен описываться в заголовке цикла
program Zc; uses crt; const c=100; var a:array of integer; n,i,k,s:integer; begin clrscr;...

Параметр цикла for в PascalABC.NET должен описываться в заголовке цикла
1.program Laba4C (input, output); 2.var 3. A, B, DX: real; 4. X, Y: real; 5. K, I:integer;...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
4
Ответ Создать тему
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2024, CyberForum.ru