Warning: Cannot use a scalar value as an array in /home/admin/public_html/forum/include/fm.class.php on line 757

Warning: Invalid argument supplied for foreach() in /home/admin/public_html/forum/include/fm.class.php on line 770
Форумы портала PHP.SU :: Версия для печати :: Функция не возвращает массив
Форумы портала PHP.SU » » Вопросы новичков » Функция не возвращает массив

Страниц (1): [1]
 

1. SetevojGoblin - 02 Декабря, 2012 - 11:56:50 - перейти к сообщению
Здравствуйте уважаемые программисты! Помогите разобраться с основами.
Существует некий рнр скрипт.
PHP:
скопировать код в буфер обмена
  1. $m[0] = 2;
  2. echo $m[0];
  3. $m[0]++;
  4. echo $m[0];

Выводит "23"
И другой скрипт.
PHP:
скопировать код в буфер обмена
  1. $m[0] = 2;
  2. Otp($m);
  3. function Otp($m){
  4.         echo $m[0];
  5.         $m[0]++;
  6.         return $m;
  7. }
  8. echo $m[0];

Выводит "22". Почему функция не возвращает массив?
2. Мелкий - 02 Декабря, 2012 - 12:00:30 - перейти к сообщению
Именно что возвращает, но вы результат выполнения функции не сохраняете.
3. SetevojGoblin - 02 Декабря, 2012 - 12:47:04 - перейти к сообщению
Мелкий пишет:
Именно что возвращает, но вы результат выполнения функции не сохраняете.

Спасибо, я понял. Нужно написать $m = Otp($m);
4. isvetlichniy - 02 Декабря, 2012 - 13:18:14 - перейти к сообщению
Цитата:
$m = Otp($m);


100% и без вариантов.
Кстати для тестирования я еще использую функцию print_r дабы посмотреть все содержимое массива.

в вашем случае это будет


Удачи1
5. sKaa - 02 Декабря, 2012 - 13:28:56 - перейти к сообщению
isvetlichniy пишет:
100% и без вариантов

Варианты конечно есть :

PHP:
скопировать код в буфер обмена
  1.     $m[0] = 2;
  2.     Otp($m);
  3.     function Otp(&$m){
  4.             echo $m[0];
  5.             $m[0]++;
  6.             return $m;
  7.     }
  8.     echo $m[0];
isvetlichniy пишет:
Кстати для тестирования я еще использую функцию print_r

var_dump, var_export
6. isvetlichniy - 02 Декабря, 2012 - 13:35:07 - перейти к сообщению
хехе , без вариантов - имелось ввиду что нужно каким либо образом передать значение.
И кстати передачу по ссылке не считаю оптимальным подходм в данной ситуации.


Я уже понял, что вы владеете синтаксисом и функциями php, но зачем усложнять жизнь начинающим программистам?
7. sKaa - 02 Декабря, 2012 - 13:38:30 - перейти к сообщению
isvetlichniy, возможно вы и правы, усложнять не за чем. Но читая более развернутые ответы, мне кажется, они будут, может, чуть быстрее чему-то учиться... субъективно моё мнение) Не хотел вас задеть чем-то)))
8. EuGen - 02 Декабря, 2012 - 13:39:40 - перейти к сообщению
isvetlichniy пишет:
но зачем усложнять жизнь начинающим программистам?

В плане отладки var_dump куда как предпочтительнее print_r, поскольку показывает тип переменной/выражения.
9. SetevojGoblin - 02 Декабря, 2012 - 14:20:48 - перейти к сообщению
Спасибо за помощь, друзья! А то на других форумах за подобные вопросы спокойно могут х...ми обложить.
10. isvetlichniy - 02 Декабря, 2012 - 14:27:40 - перейти к сообщению
Цитата:
Не хотел вас задеть чем-то)))


Вы меня абсолютно не задели. возможно вы не правильно домыслил часть моего ответа и все. )))

 

Powered by ExBB FM 1.0 RC1