Главное меню
Мы солидарны с Украиной. Узнайте здесь, как можно поддержать Украину.

PHP

Автор myst, августа 30, 2010, 14:48

0 Пользователи и 1 гость просматривают эту тему.

arseniiv

Цитата: Demetrius от сентября  1, 2010, 11:19
Возможно, и перестаёт. Зависит от языка.
Float(10) в паскале — тоже подпрограмма.
Там нету такого типа. :) Да и не позиционируют как функцию. А вот Exit, Break, Continue — ещё как процедуры.

myst

Цитата: Demetrius от сентября  1, 2010, 11:19
В аде сантиметры в дециметры неявно не переведёшь.
Я про sizeof говорил, но и это сделано тоже правильно.

Цитата: Demetrius от сентября  1, 2010, 11:19
Возможно, это и удобно, но... как-то громоздко.
Программы предназначены в первую очередь чтения людьми. Проблема ленивых кодеров решается кнутом и пряником, на худой конец — IDE.

Цитата: Demetrius от сентября  1, 2010, 11:19
Function reference перечисляет функции и языковые конструкции, похожие на функции.
Открыл http://www.php.net/manual/en/funcref.php, такого пояснения не вижу.

Цитата: Demetrius от сентября  1, 2010, 11:19
Возможно, и перестаёт. Зависит от языка.
Назовите язык, пожалуйста.

Цитата: Demetrius от сентября  1, 2010, 11:19
Ту же isset удобнее заменить исключениями, но, т.к. они в PHP появились недавно, никто ещё их не использует.
Никогда не любил исключения, особенно для таких целей. Это извращение ещё большее, чем isset, косящий под функцию.

Demetrius

Цитата: myst от сентября  1, 2010, 11:30
Программы предназначены в первую очередь чтения людьми. Проблема ленивых кодеров решается кнутом и пряником, на худой конец — IDE.
Не все программы. Для мелких скриптов (ниша PHP) скорость написания важнее лёгкости расширения и дореработки.

Цитата: myst от сентября  1, 2010, 11:30
Цитата: Demetrius от сентября  1, 2010, 11:19
Function reference перечисляет функции и языковые конструкции, похожие на функции.
Открыл http://www.php.net/manual/en/funcref.php, такого пояснения не вижу.
А где сказано, что там только функции?

Цитата: arseniiv от сентября  1, 2010, 11:29
Цитата: Demetrius от сентября  1, 2010, 11:19
Возможно, и перестаёт. Зависит от языка.
Float(10) в паскале — тоже подпрограммах[size=10].[/size]
Там нету такого типа. :) Да и не позиционируют как функцию. А вот Exit, Break, Continue — ещё как процедуры.
Ой, там предназначался знак вопроса. =))

type
  Float = Real; //кста, разве в Delphi такого нет?
begin
  WriteLn(Float(10));

Разве такое приведение типов не будет работать?

Цитата: myst от сентября  1, 2010, 11:30
Цитата: Demetrius от сентября  1, 2010, 11:19
Возможно, и перестаёт. Зависит от языка.
Назовите язык, пожалуйста.
Например, C, C++, Паскаль.
И не только sizeof, но и макросы (не во всех Паскалях, но в FreePascal'е есть).

Цитата: myst от сентября  1, 2010, 11:30
Цитата: Demetrius от сентября  1, 2010, 11:19
Ту же isset удобнее заменить исключениями, но, т.к. они в PHP появились недавно, никто ещё их не использует.
Никогда не любил исключения, особенно для таких целей. Это извращение ещё большее, чем isset, косящий под функцию.
А в чём проблема?

myst

Цитата: Demetrius от сентября  1, 2010, 11:53
Не все программы. Для мелких скриптов (ниша PHP) скорость написания важнее лёгкости расширения и дореработки.
Вы про скрипты «Hello, world», что ли? А для доработки программу приходится читать, даже аффтарам, не говоря уже о несчастных, которым приходится читать чужой write-only говнокод.

Цитата: Demetrius от сентября  1, 2010, 11:53
А где сказано, что там только функции?
В названии.

Цитата: Demetrius от сентября  1, 2010, 11:53
Например, C, C++, Паскаль.
И не только sizeof, но и макросы (не во всех Паскалях, но в FreePascal'е есть).
Приведите пример кода на любом из этих языков, где бы f(b) была подпрограммой, а f(a) не подпрограммой. То есть сущность f определялась параметром. Да, и макры сюда не надо приплетать. Это средство модификации кода.

myst


arseniiv

Offtop
Цитата: Demetrius от сентября  1, 2010, 11:53
Разве такое приведение типов не будет работать?
Будет ещё как, но там в справке это обозначается не как функция, а как отдельно приведение типа. Или хотел сказать, что выглядит как функция? Ну это, конечно, да. Кстати, Real есть, а старый Real, что был в паскале, заменён на Real48. А этот синоним для Double (а написание Real, i℧. лучше не использовать).

Ильич

Для справки.
Этот форум написан на PHP. Назвать его маленьким скриптом - язык не поворачивается. Ругать PHP просто бессмысленно. Имеет смысл сказать: "Вот это лучше". Буду рад узнать об этом. 

myst


Drundia

Цитата: Demetrius от августа 31, 2010, 01:12
Попробуйте заменить
$clause = $entry['extern'];
if (isset($clause)) {


на
if (isset($entry['extern'])) {
  $clause = $entry['extern'];
if (isset($clause = @$entry['extern'])){

Хотя я изсеты не люблю. У меня всё заэчено обычно.
if (@$clause = $entry['extern']){

myst


Drundia


Drundia

Цитата: arseniiv от августа 31, 2010, 17:18P. S. Истинно говорю вам: что мешает рассматривать isset как функцию, берущую аргумент-ссылку? (Пока справку по PHP не открывал и не знаю, можно ли такое сделать с своими функциями.)
Можно. Более того, с каких-то пор только так и можно, если ничё назад не поменялось.

myst

Цитата: Drundia от сентября  1, 2010, 13:56
Можно. Более того, с каких-то пор только так и можно, если ничё назад не поменялось.
То есть Вы хотите сказать, что если я сейчас создам функцию f(a){return a;} и $clause = $entry['extern'] поменяю на $clause = f($entry['extern']) , то предупреждения не будет?

Drundia

Цитата: myst от сентября  1, 2010, 15:21То есть Вы хотите сказать, что если я сейчас создам функцию f(a){return a;} и $clause = $entry['extern'] поменяю на $clause = f($entry['extern']) , то предупреждения не будет?
Нет, я хочу сказать что можно объявить функцию, которая принимает аргументы по ссылке. Иначе аргументы по ссылке уже не передаются.

И ошибки кстати не будет.
Сравните:

print($a);

и

function f(&$a){
print($a);
}
f($a);


и

function f(&$a){
return $a;
}
print(f($a));



Вероятно ошибки не будет если сделать
f(&$a){return $a;} и $clause = $entry['extern'] поменяю на $clause = f($entry['extern']);

myst


myst


Demetrius

Цитата: myst от сентября  1, 2010, 12:09
Да, и макры сюда не надо приплетать. Это средство модификации кода.
То есть это не код? Не часть языка? :eat:

Demetrius

Цитата: arseniiv от сентября  1, 2010, 12:32
Кстати, Real есть, а старый Real, что был в паскале, заменён на Real48. А этот синоним для Double (а написание Real, i℧. лучше не использовать).
Во FreePascal'е это по любому синоним Double.  А остальные компиляторы мне неинтересны.

myst

Цитата: Demetrius от сентября  1, 2010, 19:18
То есть это не код? Не часть языка? :eat:
Макры могут раскрываться в любой текст. Какой смысл их обсуждать? И да, я не считаю их частью языка. Это отдельный язык для преобразования текста, причём любого текста. То, что их влепили в стандарт C, так это от нищеты самого С.

oort

Цитата: myst от сентября  1, 2010, 19:28
Макры могут раскрываться в любой текст. Какой смысл их обсуждать? И да, я не считаю их частью языка. Это отдельный язык для преобразования текста, причём любого текста.
Особенно в лиспе.

myst

Цитата: oort от сентября  1, 2010, 20:44
Цитата: myst от сентября  1, 2010, 19:28
Макры могут раскрываться в любой текст. Какой смысл их обсуждать? И да, я не считаю их частью языка. Это отдельный язык для преобразования текста, причём любого текста.
Особенно в лиспе.
Мы не про лисповые макры говорим.

oort

Я увидел эту тему поздно, когда почти все копья уже сломаны, но все же чуть-чуть добавлю. На мой взгляд, самый страшный грех рнр -- это его ужасающая непродуманность и бессистемность. Спецмальные формы, которые и в том же лиспе есть -- это мелочь по сравнению с разными функциями mysql_connect, pg_connect, sqlite_connect и иже с ними.

myst

Цитата: oort от сентября  1, 2010, 21:37
На мой взгляд, самый страшный грех рнр -- это его ужасающая непродуманность и бессистемность.
Так ить наколеночная поделка. Что от неё ещё ждать? :donno:

oort

Зато ближе к естественным языкам.  :)


Быстрый ответ

Обратите внимание: данное сообщение не будет отображаться, пока модератор не одобрит его.

Имя:
Имейл:
Проверка:
Оставьте это поле пустым:
Наберите символы, которые изображены на картинке
Прослушать / Запросить другое изображение

Наберите символы, которые изображены на картинке:

√36:
ALT+S — отправить
ALT+P — предварительный просмотр