Не вполне корректное поведение PHP.

Voldar

Новичок
Не вполне корректное поведение PHP.

Только что столкнулись со странным поведением PHP:

Есть класс class3, который наследует class2 который, в свою очередь наследует class1.
В классе class3 мы переопределяем одну функцию класса class2, при этом забываем поставить закрывающую скобочку. При этом PHP вместо того, чтобы отдавать ошибку просто ничего не выдает. Соответственно вопрос следующий:
Это баг PHP или я просто слишком многого от него хочу?
Если это баг - возьмется кто-то запостить его на php.net - я для этого слишком основательно забыл английский :).

Код примерно следующий

require_once('class2.php');

class class3 extends class2
{
function someFunction($id, $status)
{
blah-blah-blah;
}


Т.е. в классе class2 была функция someFunction, в классе class3 мы ее переопределили. Как видно в примере последней скобочки нет.
Версия PHP 4.3.2
 

tony2001

TeaM PHPClub
Parse error: parse error, expecting `T_OLD_FUNCTION' or `T_FUNCTION' or `T_VAR' or `'}'' in /www/index.php on line 35
 

HEm

Сетевой бобер
Voldar, ты из большого скрипта вынул кусок когда сюда его выкладывал или попробовал указанный тобой же пример?
 

Voldar

Новичок
Выдрал из большого куска кода - писал, что называется "на бегу" :). Сегодня, если получится, или на выходнях прпробую эту багу поотлавливать и выложу реальный пример.
 

HEm

Сетевой бобер
так ты сначала попробуй этот (маленький, тот что здесь) кусок протестировать - тогда поймешь что ошибка где-то в проге самой, причем обычная синтаксическая
 

Profic

just Profic (PHP5 BetaTeam)
Особенно оспасны в этом плане регулярные выражения... Возьмем например такое
$regexp = '~... (?> ... ) ...~'; при комментировании этой строчки '//' PHP кричит PARSE ERROR, догадайтесь почему...
 

SA739

Cogito, ergo sum
to Profic:
PHP:
/* 
$regexp = '~... (?> ... ) ...~';
*/
никто ничего не кричит ((:)
 

Profic

just Profic (PHP5 BetaTeam)
SA739 читать умеем? при комментировании этой строчки '//', т.е. ДВУМЯ СЛЕШАМИ
PHP:
<?php
//$regexp = '~... (?> ... ) ...~';
?>
Понятно?
 
Сверху