Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Скриптовые языки программирования > PHP
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 15.03.2013, 17:00   #1
Dante5
Пользователь
 
Регистрация: 01.09.2010
Сообщений: 22
По умолчанию Warning: trim() expects

Warning: trim() expects parameter 1 to be string, array given in

PHP код:
    function debugRes($what,$sowhat) {
        if(
$this->debug == true) {
            
$debugbt debug_backtrace();
            
$what trim($what);
            
$sowhat trim($sowhat) . " (Line : ".$debugbt[0]["line"].")";
            if (
$what == "error") {
                
$this->debugResult[$what][] = $sowhat;
            } else {
                
$this->debugResult[$what] = $sowhat;
            }
        }
    } 
Чтото не нравится в этой строке
PHP код:
 $sowhat trim($sowhat) . " (Line : ".$debugbt[0]["line"].")"
в php 5.2 работает без ошибки а вот php 5.3 с ошибкой
Dante5 вне форума Ответить с цитированием
Старый 15.03.2013, 17:24   #2
Andkorol
Старожил
 
Регистрация: 31.05.2010
Сообщений: 3,301
По умолчанию

trim() работает со строками – а $sowhat, судя по тексту ошибки, является массивом.
Выясни, откуда и почему вместо строки приходит массив.
Andkorol вне форума Ответить с цитированием
Старый 15.03.2013, 18:31   #3
Dante5
Пользователь
 
Регистрация: 01.09.2010
Сообщений: 22
По умолчанию

Цитата:
Сообщение от Andkorol Посмотреть сообщение
trim() работает со строками – а $sowhat, судя по тексту ошибки, является массивом.
Выясни, откуда и почему вместо строки приходит массив.
ну я так понял тут проблема

debug_backtrace() выводит стек вызовов функций PHP в массив.
Dante5 вне форума Ответить с цитированием
Старый 15.03.2013, 19:26   #4
Andkorol
Старожил
 
Регистрация: 31.05.2010
Сообщений: 3,301
По умолчанию

Цитата:
debug_backtrace() выводит стек вызовов функций PHP в массив.
Молодец, без ошибок скопипастил определение из мануала.

Но ругается-то trim() при обработке $sowhat, по твоим словам?
Причем тут debug_backtrace() – если её результат в твоём коде находится в другой переменной ($debugbt)?

Или в $sowhat также находится результат работы debug_backtrace()?
По приведенному коду этого не понять.
Что именно находится в $sowhat?
PHP код:
var_dump($sowhat); 

Последний раз редактировалось Andkorol; 15.03.2013 в 19:41.
Andkorol вне форума Ответить с цитированием
Старый 15.03.2013, 20:01   #5
Dante5
Пользователь
 
Регистрация: 01.09.2010
Сообщений: 22
По умолчанию

Цитата:
Сообщение от Andkorol Посмотреть сообщение
Молодец, без ошибок скопипастил определение из мануала.

Но ругается-то trim() при обработке $sowhat, по твоим словам?
Причем тут debug_backtrace() – если её результат в твоём коде находится в другой переменной ($debugbt)?

Или в $sowhat также находится результат работы debug_backtrace()?
По приведенному коду этого не понять.
Что именно находится в $sowhat?
PHP код:
var_dump($sowhat); 
в том то и дело что это единственое место где есть $sowhat
PHP код:
function debugRes($what,$sowhat) {
        if(
$this->debug == true) {
            
$debugbt debug_backtrace();
            
$what trim($what);
            
$sowhat trim($sowhat) . " (Line : ".$debugbt[0]["line"].")";
            if (
$what == "error") {
                
$this->debugResult[$what][] = $sowhat;
            } else {
                
$this->debugResult[$what] = $sowhat;
            }
        }
    } 
больше нигде онем не вспоминается жесть какая то все файлы проверил нигде больше нету

Последний раз редактировалось Dante5; 15.03.2013 в 20:02. Причина: правка
Dante5 вне форума Ответить с цитированием
Старый 15.03.2013, 21:01   #6
Andkorol
Старожил
 
Регистрация: 31.05.2010
Сообщений: 3,301
По умолчанию

Ты вообще с программированием знаком?
Что такое функции, и как работают функции – понимаешь?
Ищи вызовы этой функции – и там смотри, какие данные в неё передаются в качестве атрибута $sowhat.
Andkorol вне форума Ответить с цитированием
Старый 15.03.2013, 23:48   #7
Dante5
Пользователь
 
Регистрация: 01.09.2010
Сообщений: 22
По умолчанию

Цитата:
Сообщение от Andkorol Посмотреть сообщение
Ты вообще с программированием знаком?
Что такое функции, и как работают функции – понимаешь?
Ищи вызовы этой функции – и там смотри, какие данные в неё передаются в качестве атрибута $sowhat.
просто обясни мне на php5.2 работает без ошибок а на php5.3 что изменилось а то уничаю один тоже также умничал а когда черз таймвивер зашол комне на комп показаить ,оказалось сам нифига не может
Dante5 вне форума Ответить с цитированием
Старый 16.03.2013, 00:00   #8
Andkorol
Старожил
 
Регистрация: 31.05.2010
Сообщений: 3,301
По умолчанию

Цитата:
Сообщение от Dante5 Посмотреть сообщение
просто обясни мне на php5.2 работает без ошибок а на php5.3 что изменилось а то уничаю один тоже также умничал а когда черз таймвивер зашол комне на комп показаить ,оказалось сам нифига не может
Нечего здесь объяснять – я ж сказал, что нужно сделать, чтоб найти причину:
Цитата:
Сообщение от Andkorol Посмотреть сообщение
Ищи вызовы этой функции – и там смотри, какие данные в неё передаются в качестве атрибута $sowhat.
Для понимающего человека ничего сложного в этом нет.
Можешь сделать это сам – делай.
Не получается – прикрепи в сообщение архив с кодом, может найдутся желающие копаться в нём вместо тебя.
Andkorol вне форума Ответить с цитированием
Старый 16.03.2013, 00:41   #9
Johnatan
Antimoderаtoris
Участник клуба
 
Регистрация: 08.02.2008
Сообщений: 1,251
По умолчанию

В твоём файле функция debugRes вызывается 31 раз, из них 6 раз в $sowhat пихается какая-то переменная, значение которой по коду не видно.

Ошибка скорее всего в строке 141, там где такой код:
PHP код:
$this->debugRes("result"$result); 
замени его на
PHP код:
$this->debugRes("result"print_r($resulttrue)); 
Другой вариант решения (и возможно более правильный) изменить функцию debugRes вот так:
PHP код:
function debugRes($what,$sowhat) { 
        if(
$this->debug == true) {
            
$debugbt debug_backtrace();
            if (
is_array($sowhat))
                
$sowhat print_r($sowhattrue);
            
$what trim($what);
            
$sowhat trim($sowhat) . " (Line : ".$debugbt[0]["line"].")";
            if (
$what == "error") {
                
$this->debugResult[$what][] = $sowhat;
            } else {
                
$this->debugResult[$what] = $sowhat;
            }
        }
    } 
98% из тысячи моих постов сделаны в профильном подфоруме. Я не накручиваю свои посты болтанием в "курилке", а ты?

Последний раз редактировалось Johnatan; 16.03.2013 в 00:46.
Johnatan вне форума Ответить с цитированием
Старый 16.03.2013, 01:37   #10
Dante5
Пользователь
 
Регистрация: 01.09.2010
Сообщений: 22
По умолчанию

Цитата:
Сообщение от Johnatan Посмотреть сообщение
В твоём файле функция debugRes вызывается 31 раз, из них 6 раз в $sowhat пихается какая-то переменная, значение которой по коду не видно.

Ошибка скорее всего в строке 141, там где такой код:
PHP код:
$this->debugRes("result"$result); 
замени его на
PHP код:
$this->debugRes("result"print_r($resulttrue)); 
}[/PHP]
помогло заменой этой строки ошибка пропала
Dante5 вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Запрос на удаление пробелов - Функция Trim cherepushka Microsoft Office Access 5 18.10.2012 14:19
mysql_fetch_array() expects parameter 1 to be resource, boolean given in xew PHP 3 08.10.2011 12:23
Trim 0creator0 Microsoft Office Word 5 03.10.2011 17:43
Warning: mysql_fetch_assoc() expects parameter 1 to be resource, boolean given in.... Andruha10 PHP 13 12.12.2010 00:53
Вопрос по функциям trim и empty Svetix PHP 4 01.06.2009 23:48