[ Поиск ] - [ Пользователи ] - [ Календарь ]
Полная Версия: Спор о стиле программирования
SunSet
Pinoplast
Учитель блин, может еще прикажешь в теги обрамить? Этот кусок кода и без обьявления переменной будет работать.

Цитата
Укажи перед этим переменую $a==1 или другое число

И если в твоем понимании переменная может содержать только число то еще почитай.

Примечание от sergeiss: эта тема - флуд от темы http://phpforum.ru/index.php?showtopic=21393&hl=



Спустя 21 минута, 59 секунд (3.10.2009 - 11:54) sergeiss написал(а):
Цитата (SunSet @ 3.10.2009 - 12:32)
Этот кусок кода и без обьявления переменной будет работать.


А вот тут ты не прав smile.gif Потому что все переменные крайне желательно объявлять до их первого использования. ПХП в этом смысле язык "не строгий", т.е. да, можно и просто работать с перемененной без ее объявления (в отличие, например, от языка Си). Но это только в случае, если отключены предупреждения. А ежели ты перейдешь на другой хостинг, то там могут быть немного другие дефолтные установки. И ты создашь тут тему "Что делать, сменил хостинг, сайт выдает много ошибок! Срочно помогите!!!" wink.gif
И плюс к этому, если предыдущих слов недостаточно, объявление переменных до их использования относится к "хорошему стилю программирования".

Спустя 3 минуты, 43 секунды (3.10.2009 - 11:58) SunSet написал(а):
sergeiss
А может у меня эта переменная прилетает из другого файла, а в обработчике ее вовсе нету, что ж я тут буду всю проверку расписывать и вытягивание из post/get ? mad.gif
Автор попросил пример конструкции if else.

Спустя 4 минуты, 17 секунд (3.10.2009 - 12:02) glock18 написал(а):
Цитата
А может у меня эта переменная прилетает из другого файла, а в обработчике ее вовсе нету, что ж я тут буду всю проверку расписывать и вытягивание из post/get ?

да, именно так и надо smile.gif либо делать так, чтобы переменная вовсе не "прилетала" из другого файла

Спустя 1 минута, 47 секунд (3.10.2009 - 12:04) sergeiss написал(а):
SunSet - что значит "она прилетает из другого файла"? Ты в этом скрипте где-то выше инклюдишь файл, где определяется эта переменная? Тогда да, она уже определена. А если не определена, то надо ее определить. Обязательно. Насчет post/get высказывание не понял.

А автор темы... Да, она насчет if-else спросил. Но и ты не на эту темы высказался wink.gif "Этот кусок кода и без обьявления переменной будет работать." Вот я и прокомментировал твое высказывание, потому что оно неверное с точки зрения хорошего стиля программирования.

PS. Когда у меня переменные передаются по цепочке "инклуженных" файлов, то я в начале скрипта всегда пишу кАмент о том, что такие-то переменные, используемые в этом скрипте, определены выше (и где именно). Потому что сам же через месяц могу долго искать, где переменная определена.

Спустя 11 минут, 44 секунды (3.10.2009 - 12:16) SunSet написал(а):
sergeiss
Спорь, не спорь, но "хороший" или "плохой" стиль программирования не является ошибкой. Щас еще твин прилетит и скажет что отстпупов нету и вообще это неработоспособный кусок кода))) laugh.gif

У автора вообще ничего выше не видно, но это не значит что там ничего нету. В пример привелся проблемный кусок кода. А может у него нету там открывающих и закрывающих тегов, или файл сохранен в .html, а тут пхп вызывает, не докапываться же ко всему что могло бы произвести ошибку.
Прежде чем выложить код скопипастил и проверил на денвере при всех включенных выводимых ошибках, все работоспособно. А если бы не работало, это уже вопрос о конфигурации настроек того сервера, потому что как ты выразился, пхп не настолько строгий, чтобы всегда соблюдать необязательные правила.

Спустя 13 минут, 22 секунды (3.10.2009 - 12:29) sergeiss написал(а):
Цитата (SunSet @ 3.10.2009 - 13:16)
Спорь, не спорь, но "хороший" или "плохой" стиль программирования не является ошибкой.

А я с этим и не спорю smile.gif Он просто является "хорошим" или "плохим". И надо стремиться к "хорошему". И я утверждаю только то, что твое достаточно категоричное утверждение является неверным smile.gif Если бы я этого не сделал, то у людей, начинающих программировать, и прочитавших твое утверждение, может сложиться не совсем правильно представление о ПХП.

И еще... Если кто-то после тебя будет поддерживать сайт, где ни одна переменная не объявляется заранее, то ты будешь много икать... Потому что тебя будут поминать очень недобрым словом.

И еще.
Во-первых, указание "<? php" не является коротким тэгом, а пробел был добавлен автором для того, чтобы дальнейший текст НЕ интерпретировался движком форумам как текст ПХП.
Во-вторых, в ПХП тип переменных не указывается в явном виде, а определяется из контекста. Поэтому твое утверждение о том, что надо указать не только переменную, но и ее тип, говорит (1) либо о твоем желании поспорить ради спора, (2) либо о том, что ты не знаешь самые основы ПХП smile.gif Выбирай, что на самом деле.

Спустя 13 минут, 13 секунд (3.10.2009 - 12:42) SunSet написал(а):
sergeiss
Я выбираю третий вариант ответа - Ларри Ульман "Основы программирования на PHP"

Свернутый текст
user posted image


Можно и на лету, а можно и нет. Это и есть тот оговоренный вами, батенька, хороший стиль программирования, как и с картинки выше видно.
Так что у тебя два варианта ответа - 1. либо ты соглашаешься что неопределение зарания типа переменной является плохим стилем программирования; 2. либо мы не говорим о таких субьективных вещах, когда язык допускает выбирать между "Можно так, а можно и так". Выбирай laugh.gif

Спустя 9 минут, 6 секунд (3.10.2009 - 12:52) sergeiss написал(а):
SunSet - это "вариант №1" из описанных мной ранее, т.е. ты готов спорить ради спора wink.gif Мнение Ларри Ульмана - это его личное мнение. А вот хэлп по ПХП, созданный разработчиками ПХП, говорит следующее:
Код
Манипуляции с типами
PHP не требует (и не поддерживает) явного определения типа при объявлении переменной; тип переменной определяется по контексту, в котором она используется. То есть, если вы присвоите строковое значение переменной $var , $var станет строкой. Если вы затем присвоите $var целочисленное значение, она станет целым числом.

Примером автоматического преобразования типа является оператор сложения '+'. Если любой из операндов является числом с плавающей точкой, то все операнды интерпретируются как числа с плавающей точкой, результатом будет также число с плавающей точкой. В противном случае операнды будут интерпретироваться как целые числа и результат также будет целочисленным. Обратите внимание, что это НЕ меняет типы самих операндов; меняется только то, как они вычисляются.

Оттуда же, т.е. из хэлпа:
PHP
$foo = "0";  // $foo это строка (ASCII 48)
$foo += 2;   // $foo теперь целое число (2)
$foo = $foo + 1.3;  // $foo теперь число с плавающей точкой (3.3)
$foo = 5 + "10 Little Piggies"; // $foo это целое число (15)
$foo = 5 + "10 Small Pigs";     // $foo это целое число (15)


Так что "не спорь ради спора". А почитай основу основ - хэлп. Там - всё достоверно, в отличие от любых "интертрепаций" smile.gif

И кстати. Переменную $number (которая, будто бы, равна именно целому числу 5) из твоего примера можно смело использовать как символьную строку, состоящую из одного символа '5'.

Спустя 15 минут, 20 секунд (3.10.2009 - 13:07) SunSet написал(а):
sergeiss
Я действительно спорю ради спора, или спортивного интереса)) Толку от этого ж ведь ноль)

Книга Ульмана, не есть как ты выразился интертрепацией, поскольку в самом начале упоминается о том, что основана на офф. сайте пхп. Я не привел в пример статью какогото нееизвестного чувака с интернета и не пульнул ссылкой, а процетировал абзац из книги основ пхп-языка. А тут оказывается что уже и книжка не та, и автор пишет черт знает о чем. Так ведь?

Наверно, как и следовало бы ожидать, каждый останется при своем мнении, так как если книга врет, то ничего не остается как развести руками. Получается, что любая книга является чьимто мнением, и не есть первоисточником, выходит, что и читать ее нету смысла, так как вдруг она "неправельная". На мануале многому же не научишься.
Это тоже самое что не читать газету, а ехать к президенту страны, чтобы он подтвердил сказанные в той гозете свои слова.

Я не собирался доказывать что я гений, не спорю даже что ты в разы лучше меня знаешь php, но иногда даже великие ошибатся)

Спустя 48 секунд (3.10.2009 - 13:08) SunSet написал(а):
Бягу на рынок уже, а то совсем заговорился тут)) Опять опаздываю) laugh.gif

Кстати, если это уж мануал, то там не может быть упоминаний о хорошем и плохом стиле программирования, там должны быть указаны четкие границы того что можно, а что ошибочно. Именно в книге должно быть описание разного подхода к конкретному примеру.

Это как правила орфографии русского языка, где указывается только как неправельно и как правильно, а в учебнике русской литературы, например, приведено как этим правильным манипулировать более принятным для себя.

Спустя 16 минут, 4 секунды (3.10.2009 - 13:24) sergeiss написал(а):
SunSet - любая книга - это интерпретация ее автора. Вон по Попову народ учится, и даже что-то получается. Но у него есть несколько совершенно неправильных моментов!
А ты почему-то считаешь, что у другого автора всё верно написано? С чего бы? Он "пропустил" знания через себя, и выдал в том виде, как он понял.

Цитата (SunSet @ 3.10.2009 - 14:07)
Я действительно спорю ради спора, или спортивного интереса)) Толку от этого ж ведь ноль)

И это тоже неправильно smile.gif Потому что у спора должна быть конечная цель. А "спор ради спора" - это заведомо неверное действие. Потому что, как ты правильно сказал, толку ноль.

Цитата (SunSet @ 3.10.2009 - 14:07)
На мануале многому же не научишься.

Вот тут ты не прав... Это зависит от того, насколько хорошо написан мануал, и от того, насколько внимательно ты его читаешь. По ПХП мануал написан очень хорошо. Остается только его прочитать внимательно. Весь, целиком, а не "по диагонали", не выборочно.

Спустя 14 минут, 29 секунд (3.10.2009 - 13:38) SunSet написал(а):
sergeiss
Мануал - не должен быть хорошо или плохо написанным. Это как инструкция к телефону, там стихов не должно быть. В мануале нет разграничей людей на новичков и на спецов, пишется одинакового для всех. В книге идет разжевывание для конкретного юзера. И заметь, что пишется не от балды, а на основе того же мануала. Не может быть такого, что мануал говорил "так нельзя", а автор напишет "Так можно". Ты сейчас цитируешь тот ман., точно так же являешься автором того что тут написано, и точно так же ссылаешься на первоисточник. Потому, точно столько же оснований у меня не верить тебе, сколько и автору, потому что мало ли как вы это все интерпритировали в своей голове.
Единственный минус книги перед интернет-аналогом, то что книга устаревает, она не обновляется. Возможно, были какието изменения, но тронули они только интернет-версию, так как книга старовата. Но и тут то не угонишься, тогда смысла вообще нету покупать печатные издания, сегодня купил - завтра в инете опровергли сказанное вчера.

Спустя 3 часа, 10 минут, 26 секунд (3.10.2009 - 16:49) Pinoplast написал(а):
Не подеретесь я неверю biggrin.gif
РАУНД 3
красные трусы SunSet
синие трусы sergeiss

Боец в первом раунде нанес оглушительные удары includami в места запрещеные правилами biggrin.gif



А php я как текст написал, а не к програмированию!!!

в посте Дата 3.10.2009 - 08:18
wink.gif

Спустя 10 минут, 3 секунды (3.10.2009 - 16:59) Pinoplast написал(а):
Цитата (sergeiss @ 3.10.2009 - 09:04)
SunSet - что значит "она прилетает из другого файла"? Ты в этом скрипте где-то выше инклюдишь файл, где определяется эта переменная? Тогда да, она уже определена. А если не определена, то надо ее определить. Обязательно. Насчет post/get высказывание не понял.

А автор темы... Да, она насчет if-else спросил. Но и ты не на эту темы высказался wink.gif "Этот кусок кода и без обьявления переменной будет работать." Вот я и прокомментировал твое высказывание, потому что оно неверное с точки зрения хорошего стиля программирования.

PS. Когда у меня переменные передаются по цепочке "инклуженных" файлов, то я в начале скрипта всегда пишу кАмент о том, что такие-то переменные, используемые в этом скрипте, определены выше (и где именно). Потому что сам же через месяц могу долго искать, где переменная определена.

Насчет этого согласен, через месяц все переписываю наново sad.gif , запомнил буду также делать спасибо wink.gif

Спустя 11 минут, 35 секунд (3.10.2009 - 17:10) SunSet написал(а):
Если юзать функции пхп версии 5, с ними писать код, а потом при хостинге с поддержкой пхп только 4, повылетают ошибки, то это тоже программист неправельный?))
А может, это так настроен тот сервер? Вот если был бы образец хостингового сервера, в котором четко указывалось, что нельзя без обьявления переменной юзать тот кусок, тогда я согласился что там моя ошибка. А так нечего лепить все на свой лад, в моем серваке - не глючит, пусть в вашем глючит. Покажите мне обоснования, что я должен ровняться на тот ваш "чудо настроенный" сервак, а не вам менять его настройки. Раз пхп позволяет не обьявлять переменную, значит я по усмотрению могу делать это, или нет. А если эта возможность отключена хостингом, это уже проблемы криворукости админа сервака.

Спустя 3 часа, 57 минут, 34 секунды (3.10.2009 - 21:08) sergeiss написал(а):
Цитата (SunSet @ 3.10.2009 - 18:10)
Раз пхп позволяет не обьявлять переменную, значит я по усмотрению могу делать это, или нет.

...и в итоге ты когда-нибудь наступишь на эти грабли smile.gif Удачи! Причем, постарайся вспомнить этот разговор, когда при переходе к другому хостеру у тебя будут проблемы подобного рода wink.gif

Цитата (SunSet @ 3.10.2009 - 18:10)
А если эта возможность отключена хостингом, это уже проблемы криворукости админа сервака.

Как ты думаешь, что скорее произойдет: ты что-то скорректируешь в своем коде или хостер подстроится под тебя? (вопрос риторический, вообще-то).

Цитата (SunSet @ 3.10.2009 - 18:10)
Если юзать функции пхп версии 5, с ними писать код, а потом при хостинге с поддержкой пхп только 4, повылетают ошибки, то это тоже программист неправельный?))


А сравнение ПХП-5 и ПХП-4 вообще некооректно в том виде, как ты это делаешь.


PS. Я сейчас разделю основную тему и спор. Спор вынесу в раздел Флейм в отдельную тему. Ищите ее там минут через 5 после этого сообщения.

PPS. Разделил smile.gif Поэтому прошу все споры тут вести, а в основной теме пусть автор той темы выясняет свои непонятки с записью в файл.


_____________
... и помните! Каким бы ни был PHP, главное - чтобы он был защищенным! :) (PHP с Анфисой Чеховой)
Быстрый ответ:

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