|
|
|
| Вот решил написать систему отладки (ну это только я её так назвал)
Если появляется ошибка, то скрипт должен её вывести на экран. Все ошибки описаны в функции site_error()
Ошибка вызывается в классе "in", но ошибка не выводится на экран. Пишут что неопределена переменная num.
Вот пытаюсь разобраться в чем проблема. Вроди как return (в class_in.php) должен возвращать её, но он этого не делает или я совсем не так копаю.
index.php
<?
require_once('include/class_in.php');
$in= new in;
echo $in->site_error($num);
?>
|
class_in.php
<?
require_once('include/class_func.php');
class in extends func {
function add() {
$num = '3';
return($num);
}
}
?>
|
class_func.php
<?
class func {
function site_error($num) {
$err[1] = 'Пустые поля.';
$err[2] = 'Ошибка авторизации.';
$err[3] = 'Ошибка SQL запроса.';
return($err[$num]);
}
}
?>
|
| |
|
|
|
|
|
|
|
для: ChieFSS
(12.06.2007 в 20:25)
| | $num где объявлена?
<?
require_once('include/class_in.php');
$in= new in;
echo $in->site_error($in->add());
?>
|
можно было бы | |
|
|
|
|
|
|
|
для: bronenos
(12.06.2007 в 21:42)
| | $num объявляется там где ошибка.
Если $num = 0, то значит нет ошибки, а если больше, то далее должно сверяться с массивом в функции site_error()
Такой способ не подойдет, потому что неизвестно, сколько таких функций будет и как они будут называться. | |
|
|
|
|
|
|
|
для: ChieFSS
(12.06.2007 в 22:35)
| | непонятно, да?
Код
<? require_once('include/class_in.php');
$in= new in;
echo $in->site_error($num);
?>
|
сам по себе создает ошибку в третьей строке, поскольку переменная $num неопределена. | |
|
|
|
|
|
|
|
для: Trianon
(13.06.2007 в 01:29)
| | Так в классе in в функции возвращается значение ретурном. | |
|
|
|
|
|
|
|
для: ChieFSS
(13.06.2007 в 18:57)
| | Понятно... Вы, похоже, играете в свой собственный язык.... | |
|
|
|
|
|
|
|
для: Trianon
(13.06.2007 в 19:02)
| | Да не удивляйтесь.. у меня такое каждый день :))
А что ретурн не для этого разьве нужен? | |
|
|
|
|
|
|
|
для: ChieFSS
(13.06.2007 в 19:06)
| | return нужен для того, чтобы вернуть значение. Все, что стоит после return в подпрограмме игнорируется.
В данном случае нет даже вызова функции, которая это значение вернет. | |
|
|
|
|
|
|
|
для: Unkind
(13.06.2007 в 19:12)
| | А что будет если перед echo $in->site_error($num); добавить $in->add();
$num стоит в ретурне. значит игнорироваться не должно. | |
|
|
|
|
|
|
|
для: ChieFSS
(13.06.2007 в 19:20)
| | мой Вам совет.... не лезьте полгодика в классы и ООП.
Попробуйте сперва разобраться с функциями, переменными, областью их видимости и временем жизни.
А после этого беритсь за ООП | |
|
|
|
|
|
|
|
для: Trianon
(13.06.2007 в 19:32)
| | Эх.. ещё пол годика?))
Да так то все получается, а вот с классами проблема какая-то.
Ладно посижу пока без классов :) | |
|
|
|
|
|
|
|
для: ChieFSS
(13.06.2007 в 19:37)
| | ну если Вы переменную не отличаете от выражения, а выражение от его значения?
равно как переменную внутри функции от переменной извне? | |
|
|
|
|
|
|
|
для: ChieFSS
(13.06.2007 в 19:37)
| | А что будет если перед echo $in->site_error($num); добавить $in->add();
Ничего не будет. Повторю: return нужен для того, чтобы вернуть значение. А переменная с именем "num" все равно так и не появится.
Грубо говоря, в данном случае
Аналогично
| |
|
|
|
|
|
|
|
для: Unkind
(13.06.2007 в 19:40)
| | Ааааа.. дошло.
ЗЫ Проведя анализ состояния своего мозга, я сделал вывод, что я просто перегрелся... неделя очень сложная была. Все еще дня 2 вопросов не задаю пока не приду в себя :)) | |
|
|
|