[ Поиск ] - [ Пользователи ] - [ Календарь ]
Полная Версия: Определить место вызова метода
miker
Привет, как определить откуда вызывается определенный метод, что нить типа этого
[php]echo [php]



Спустя 8 минут, 26 секунд (26.05.2009 - 09:59) glock18 написал(а):
Не совсем понятно что имеется ввиду. Для чего это нужно опиши. Ошибку хочешь найти или еще зачем?

Спустя 7 минут, 15 секунд (26.05.2009 - 10:06) miker написал(а):
не совсем, просто по коду метод должен отрабатывать с одними парамерами, а вызывается с другими, надо понять откуда он еще может вызываться

Спустя 4 минуты, 40 секунд (26.05.2009 - 10:11) stepan написал(а):
Совсем ни чего не понял что ты хочешь и для чего тебе это надо.
Распиши в полном обеме свою проблему и наче ни ведать тебе ответа.

Спустя 6 минут, 51 секунда (26.05.2009 - 10:18) miker написал(а):
smile.gif
значит есть метод
PHP
function show_gateways($transaction_id$payment_amount$currency$user_id$payment_description null$dp_gateways null$is_buy_out false,$sql_select_wmon null)

он вызывается с параметром $is_buy_out = true надо найти место откуда он вызывается с этим парметром, мест вызова очень много, в других языках можно сгенерить ошибку типа поменять название на _show_gateways и генерится ошибка с указанием места откуда он вызвается с указанием строчки. Здесь же просто барузер зависает и все

Спустя 8 минут, 36 секунд (26.05.2009 - 10:26) waldicom написал(а):
Смотри в сторону этого: __FILE__, __FUNCTION__, __LINE

Спустя 2 минуты, 11 секунд (26.05.2009 - 10:29) sergeiss написал(а):
Цитата (miker @ 26.05.2009 - 11:18)
...в других языках можно сгенерить ошибку типа поменять название на _show_gateways и генерится ошибка с указанием места откуда он вызвается с указанием строчки...


А ежели просто поискать вызов этой функции, используя чисто возможности Винды (если не хочется использовать специальные программы)? Берешь проводник, включаешь поиск... И за пару секунд получаешь все файлы, где есть вызов этой функции. И дальше делаешь всё, что хочешь с этими файлами.
Меняешь названия функций, удаляешь их, удаляешь все скрипты целиком, чтобы они не мешали спокойно жить...

Или я что-то не понимаю в этой жизни??? blink.gif

Спустя 1 час, 5 минут, 55 секунд (26.05.2009 - 11:34) glock18 написал(а):
Насколько я знаю, есть только одна возможность выследить средствами php откуда приходит в скрипт ненужная переменная (нужен php5, иначе слушай sergeiss). Хотя, глядя на код функции, возникают сомнения, что у тебя php5, однако...

В начале метода нужно вставить что-то в этом духе:

PHP
<?php
function show_gateways($transaction_id$payment_amount$currency$user_id$payment_description null$dp_gateways null$is_buy_out false,$sql_select_wmon null)
{
try
{
if (
$is_buy_out === false)
throw new 
Exception('передан неверный параметр в ' __METHOD__);
}
catch (
Exception $e)
{
echo 
'<pre>';
echo 
$e->getMessage() . "\n";
echo 
'Стек вызовов:' "\n";
print_r($e->getTrace());
echo 
'</pre>';
}

}


В стеке вызовов будет видно откуда вызван метод. Только странно вообще то, когда на значение по умолчанию для параметра ставят некорректное значение. Обычно ставят то, что чаще всего встречается в программе. Если часто используется true, то проще заменить им текущее значение по умолчанию и не париться.

Спустя 1 час, 28 минут, 21 секунда (26.05.2009 - 13:03) miker написал(а):
ду нужен именно стек вызовов, спасибо

Спустя 11 часов, 17 минут, 3 секунды (27.05.2009 - 00:20) Alchemist написал(а):
Вот тут посмотри. В частности debug_backtrace() может помочь.

Спустя 1 час, 5 минут, 54 секунды (27.05.2009 - 01:26) FatCat написал(а):
Цитата (miker @ 26.05.2009 - 10:18)
Здесь же просто барузер зависает и все

Белая страница?
Отключали показ ошибок?
Быстрый ответ:

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