"Чистота" кода

Panchous

Павел
"Чистота" кода

Читал php.ini-recommended,
но все же хочется воспользоваться Вашим опытом...
Какой уровень error_reporting в наибольшей степени соотвествует сочетанию чистый код/удобство его написания:
1. для разработки
2. для релиза
web-приложения?
 

Panchous

Павел
если один и тот же скрипт показывает и обрабатывает форму,
то как лучше обеспечить опработку параметров запроса?
Код:
if( !empty($_REQUEST['param']) ) {
   echo $_REQUEST['param'];
   // остальная обработка 
}
таким образом?
 

Demiurg

Guest
можно так, если у тебя параметр никогда пустым не бывает.
 

Panchous

Павел
дело в том, что на
Код:
if ( isset($_REQUEST['param']) ) {...}
выдается NOTICE:
undefined index: param

Вот мне и интересно,
как правильно осуществлять обработку параметров значений
 

Фанат

oncle terrible
Команда форума
При обработке формы проверка на иссет и емпти не обязательна.
А если тебе пишет, что индекс не определен - значит, ты обращаешься к несуществующему индексу.
 

Panchous

Павел
Кром
Виноват - все ок)

Другая проблема:

Warning:
Call-time pass-by-reference has been deprecated - argument passed by value;
If you would like to pass it by reference, modify the declaration of array_merge().
If you would like to enable call-time pass-by-reference, you can set allow_call_time_pass_reference to true in your INI file. However, future versions may not support this any longer.


Как лучше поступить в этом случае?

PHP 5.0.2
 

Кром

Новичок
>Как лучше поступить в этом случае?

Указывать передачу по ссылке при объявлении функции.
 

Panchous

Павел
функция array_merge() - стандартная,
но у меня достаточно большие массивы - хочется передавать их по ссылке
 

Кром

Новичок
>но у меня достаточно большие массивы - хочется передавать их по ссылке

В данном случае неизвестно, насколько это улучшит производительность.
 

neko

tеam neko
наверное у него большие массивы из 20ти элементов
очевидно что уменьшит
 

NiC

Буратино был тупой
Можно встряну?

Я выставил в php.ini error_reporting = E_ALL, и теперь даже на простое условие
if (!$_SERVER['HTTP_X_FORWARDED_FOR']) $_SERVER['HTTP_X_FORWARDED_FOR'] = '127.0.0.1';

выдаёт предупреждение - Undefined index: HTTP_X_FORWARDED_FOR in c:\Internet\www\zone\index.php on line 8

как тогда правильно писать код?
 

Ilya

Новичок
вопросец таков:

есть рекурсивная функция для вывода дерева...

function rekursia() {
....
$derevo .= rekursia()
....
}

у меня все ошибки и нотайсы включены, тут пишет:
Notice: Undefined variable: drevo in Z:\other\pr1\res\inc\function-admin.inc.php on line 42

обычно я это дело устраняю так
пишу в начале функции $drevo = "";

как сделат?!?

непойму, уже голова от этой рекурсии сдвигается налево :)
 

SiMM

Новичок
Во-первых, ты нагло лжёшь (код привёл абсолютно левый и недостаточный), во-вторых - написано же - [m]isset[/m] ;)
 

Ilya

Новичок
полный код...

куда тут isset вставить?! непойму ;)


PHP:
function rekurs_tree( $xml, $parent, $xpath, $num ) {

           $num++;

           $nodes = $xml->xpath_eval( $parent , $xpath );
           for( $i = 1; $i < sizeof( $nodes ) + 1; $i++ ):

                $space = "";

                $query = $xpath . "[ position() = $i ]/name_ru";
                $query_a = $xpath . "[ position() = $i]/node";
                $n_cont = $xml->xpath_eval( $parent, $query );

                for( $j = 0; $j < $num; $j++ ):
                     $space .= "&nbsp;&nbsp;";
                endfor;
                $drevo .= $space . convert( $xml->get_content( $n_cont[0] ) ) . "<br>";

                $nodes_a = $xml->xpath_eval( $parent , $query_a );
                if( sizeof( $nodes_a ) != 0 ):
                    $drevo .= rekurs_tree( $xml, $parent, $query_a, $num );
                endif;
           endfor;
           return $drevo;


  }
вопрос остался для меня открытым :(
 

Profic

just Profic (PHP5 BetaTeam)
Ilya
хм, вообще странный код, ну да ладно
в твоей текущей реализации заменяешь $space на $drevo везде и в одном месте убираешь повтор. это же очевидно

-~{}~ 21.12.04 02:44:

и цикл cо $space меняешь на [m]str_repeat[/m]()
 

Ilya

Новичок
Автор оригинала: Profic
Ilya
хм, вообще странный код, ну да ладно
в твоей текущей реализации заменяешь $space на $drevo везде и в одном месте убираешь повтор. это же очевидно
1. чем странный код?
2. непонял, зачем заменять $space на $drevo?!
объясни.
3. какой повтор?!

популярнее пожалуста :)


с str_repeat понял, спасиб
 
Сверху