[ Поиск ] - [ Пользователи ] - [ Календарь ]
Полная Версия: Ошибка array_push()
sx000

$error_array = array();
array_push($error_array,$dan);

Warning: array_push(): First argument should be an array in ...
почему? я же создал пустой массив.



Спустя 28 минут, 41 секунда (1.12.2011 - 21:49) Winston написал(а):
А что у тебя хранится в $dan ?
У меня все отлично работает
$error_array = array();
$dan = 10;
array_push($error_array,$dan);
print_r($dan);

Спустя 1 минута, 20 секунд (1.12.2011 - 21:50) sx000 написал(а):

$error_array = array();
function log_error ($error,$in){
$file_log = fopen ("log.txt","a+");
$time_[0] = date("H:i:s");
$time_[1] = date("m.d.y");
$dan = $in." - ".$error.", время: ".$time_[0].", дата: ".$time_[1];
fputs ( $file_log, $dan."\n");
fclose ($file_log);
array_push($error_array,$dan);
return $error_array;
}

http://php.su/functions/?array-push
делал согласно примеру
$stack = array("orange", "banana");
array_push($stack, "apple", "raspberry");
print_r($stack);

Спустя 3 минуты, 12 секунд (1.12.2011 - 21:53) Winston написал(а):
Тьфу, дык ты же объявил $error_array вне ф-ии, вот и ошибка :)
Напиши в ф-ии
global $error_array;

Спустя 6 минут, 30 секунд (1.12.2011 - 22:00) Winston написал(а):
И делать возврат массива return $error_array не нужно т.к. array_push добавляет значения в массив по ссылке, достаточно написать

$error_array = array();
function log_error ($error,$in){
global $error_array;
$file_log = fopen ("log.txt","a+");
$time_[0] = date("H:i:s");
$time_[1] = date("m.d.y");
$dan = $in." - ".$error.", время: ".$time_[0].", дата: ".$time_[1];
fputs ( $file_log, $dan."\n");
fclose ($file_log);
array_push($error_array,$dan);
}

print_r($error_array );

Спустя 2 часа, 12 минут, 25 секунд (2.12.2011 - 00:12) sx000 написал(а):
function log_error ($error,$in){
$error_array = array();
$file_log = fopen ("log.txt","a+");
$time_[0] = date("H:i:s");
$time_[1] = date("m.d.y");
$dan = $in." - ".$error.", время: ".$time_[0].", дата: ".$time_[1];
fputs ( $file_log, $dan."\n");
fclose ($file_log);
array_push($error_array,$dan);
}


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

Спустя 12 минут, 10 секунд (2.12.2011 - 00:24) Winston написал(а):
Ну в таком случае, если ты объявляешь $error_array = array(); в ф-ии то конечно же ты должен вернуть этот массив из ф-и
return  $error_array;

Спустя 10 минут, 30 секунд (2.12.2011 - 00:35) sx000 написал(а):
function log_error ($error,$in){
//global $error_array;
$error_array = array();
$file_log = fopen ("log.txt","a+");
$time_[0] = date("H:i:s");
$time_[1] = date("m.d.y");
$dan = $in." - ".$error.", время: ".$time_[0].", дата: ".$time_[1];
fputs ( $file_log, $dan."\n");
fclose ($file_log);
array_push($error_array,$dan);
return $error_array;
}


если так то я не могу поймать его в основном скрипте скрипте.

function log_error ($error,$in){
global $error_array;
$error_array = array();
$file_log = fopen ("log.txt","a+");
$time_[0] = date("H:i:s");
$time_[1] = date("m.d.y");
$dan = $in." - ".$error.", время: ".$time_[0].", дата: ".$time_[1];
fputs ( $file_log, $dan."\n");
fclose ($file_log);
array_push($error_array,$dan);
}


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

Спустя 1 минута, 31 секунда (2.12.2011 - 00:36) Winston написал(а):
Напиши
print_r(log_error ('значение','значение'));




Спустя 1 минута Winston написал(а):
Или так
$foo = log_error ($error,$in);
print_r($foo);

Спустя 3 минуты, 50 секунд (2.12.2011 - 00:40) sx000 написал(а):
log_error ("Нет прогрузки страницы.", $url."; код:".$result['http_code']);

Да я вызываю ее в основном скрипте, я думал что если произошел вызов фун-ии то
print_r($error_array);

массив смогу вызвать уже ниже без каких то проблем ведь вызвов уже был и обращение было к функции.
Быстрый ответ:

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