powered by simpleCommunicator - 2.0.60     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / PHP, Perl, Python [игнор отключен] [закрыт для гостей] / Символ #0 в строках PHP
37 сообщений из 37, показаны все 2 страниц
Символ #0 в строках PHP
    #38533349
InterSky
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Архивирую строку с текстом в РНР.
Вроде ничего сложного, функции архивации в РНР есть.
А что будет если в сжатой строке появится символ Chr(0)?
Помнится у других языков программирования на этом строка считается завершонной.
А как обстоит делов с РНР? (может я зря волнуюсь? может он дружит с этим символом и для него нет проблем?)
...
Рейтинг: 0 / 0
Символ #0 в строках PHP
    #38533377
Фотография ScareCrow
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
проверка этого вопроса заняла бы меньше чем написание текста.
...
Рейтинг: 0 / 0
Символ #0 в строках PHP
    #38533596
InterSky
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ScareCrowпроверка этого вопроса заняла бы меньше чем написание текста.Проверка не дала бы ответа о безопасности наличия символа #0. Его наличие в строке может быть частным случаем... Скажем в Delphi объявляешь строковую переменную в обработчике, и она 100 раз подрат будет пустой, а потом бах и окажется заполненной всякой всячиной. Тоже частный случай...
...
Рейтинг: 0 / 0
Символ #0 в строках PHP
    #38534383
artas
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
InterSkyА что будет если в сжатой строке появится символ Chr(0)?

сжатая строка будет обрезана по этот символ. А с чего бы вдруг ему там появлятся ?
...
Рейтинг: 0 / 0
Символ #0 в строках PHP
    #38534786
InterSky
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
artasА с чего бы вдруг ему там появлятся ?
Ну я же не могу гарантировать что в сжатой последовательности (которая по сути является бинарным кодом) не встретится символ Chr(0). Тысячу раз фаил заархивировал и у тебя всё нормально, а в тысячапервом бах и появится нулевой символ и строка обрежется и уже не сможет быть разархивированной.
...
Рейтинг: 0 / 0
Символ #0 в строках PHP
    #38534877
Програмёр
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
artasInterSkyА что будет если в сжатой строке появится символ Chr(0)?

сжатая строка будет обрезана по этот символ. А с чего бы вдруг ему там появлятся ?

Вообще-то в php не будет :) Не знаю с чего такой вывод, но попробуйте выполнить:
Код: php
1.
2.
    $str = "hello with null >>".chr(0).chr(0)."<< chars";
    echo $str;


и сами убедитесь.

InterSkyПроверка не дала бы ответа о безопасности наличия символа #0. Его наличие в строке может быть частным случаем... Скажем в Delphi объявляешь строковую переменную в обработчике, и она 100 раз подрат будет пустой, а потом бах и окажется заполненной всякой всячиной. Тоже частный случай...


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

В данном случае подобные нюансы отсутствуют.
...
Рейтинг: 0 / 0
Символ #0 в строках PHP
    #38535105
InterSky
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Я по этому и спрашиваю у тех кто знает...
А то кто его знает, один раз увидел Chr(0), а потом какой-нибудь Flush пройдёт и подожмёт строки до первых нулей...
В конце концов в РНР много сюрпризов, например:
Код: php
1.
if (0=='txt') echo 'True'; else echo 'False';

Данный код вернёт True.
...
Рейтинг: 0 / 0
Символ #0 в строках PHP
    #38535111
st_st
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
InterSky,

Сравнение делается через "===". А вообще такое поведение нормально .
...
Рейтинг: 0 / 0
Символ #0 в строках PHP
    #38535377
Програмёр
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
InterSkyЯ по этому и спрашиваю у тех кто знает...
А то кто его знает, один раз увидел Chr(0), а потом какой-нибудь Flush пройдёт и подожмёт строки до первых нулей...
В конце концов в РНР много сюрпризов, например:
Код: php
1.
if (0=='txt') echo 'True'; else echo 'False';

Данный код вернёт True.

Это не сюрприз (после перехода с delphi у меня тоже были проблемы с нестрогим сравнением и с процедурой приведения типов, но просто надо было разобраться).

в отличие от строгого сравнения (===) при нестрогом сравнении типы переменных приводятся к одному и только тогда сравниваются. Это делается всегда по правилу, более сложный тип приводится к более простому (если так можно выразится). Потому при сравнении двух переменных разного типа, int приводится к boolean, float к int или boolean, string к float или int или boolean и т.д.

Потому то, попробуйте привести "txt" к типу int... что у Вас получится? )) дааа... 0... а теперь сравниваем if(0==0)... что получаем? правильно - true :)
А вот если вместо "txt" написать "1txt", то уже получим false (так как "1txt" после приведения к типу int будет равно 1)
...
Рейтинг: 0 / 0
Символ #0 в строках PHP
    #38535442
st_st
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
А ещё javascript есть, в нём всё наоборот (или в php всё наоборот) и alert(0=='txt') вернёт false. Также как и две разные строки - ("37127371298379127398733" == "37127371298379127398734") в php это true, а в js false. Это web, здесь всё серьёзно
...
Рейтинг: 0 / 0
Символ #0 в строках PHP
    #38535577
Програмёр
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
st_stА ещё javascript есть, в нём всё наоборот (или в php всё наоборот) и alert(0=='txt') вернёт false. Также как и две разные строки - ("37127371298379127398733" == "37127371298379127398734") в php это true, а в js false. Это web, здесь всё серьёзно

Ага... а вот "37127371298379127398733b" == "37127371298379127398734b" уже вернёт false. Видимо php по умолчанию все строки вида /^\d+$/ старается сравнивать как integer, а строки /\d+.\d+/ как float. (соответственно в первом случае всё, что больше максимума для integer будет приравниваться к этому максимуму, а во втором просто точность в 14 знаков, а остальное отбрасывается)
))) Кстати, об этом не знал... спасибо :) буду внимательнее следить за строками, если в них есть только цифры.
...
Рейтинг: 0 / 0
Символ #0 в строках PHP
    #38535616
Фотография ScareCrow
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
тред нечетателей документации.
...
Рейтинг: 0 / 0
Символ #0 в строках PHP
    #38535674
Програмёр
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ScareCrowтред нечетателей документации.

Киньте пожалуйста ссылку на доки, где данное поведение обосновывается (или хотя бы упоминается).
...
Рейтинг: 0 / 0
Символ #0 в строках PHP
    #38535683
Фотография ScareCrow
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
http://www.php.net/manual/en/language.operators.comparison.php
авторIf you compare a number with a string or the comparison involves numerical strings, then each string is converted to a number and the comparison performed numerically. These rules also apply to the switch statement. The type conversion does not take place when the comparison is === or !== as this involves comparing the type as well as the value.
...
Рейтинг: 0 / 0
Символ #0 в строках PHP
    #38535711
Програмёр
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ScareCrow http://www.php.net/manual/en/language.operators.comparison.php
авторIf you compare a number with a string or the comparison involves numerical strings, then each string is converted to a number and the comparison performed numerically. These rules also apply to the switch statement. The type conversion does not take place when the comparison is === or !== as this involves comparing the type as well as the value.

хм) правда есть. спасибо.
Не понятна мне конечно причина такого поведения, но ладно... разрабам виднее ))
...
Рейтинг: 0 / 0
Символ #0 в строках PHP
    #38535717
Фотография ScareCrow
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
авторНе понятна мне конечно причина такого поведения, но ладно
эм? если просто то потому что у нас есть язык с нестрогой типизацией ВЕЗДЕ.
если сложно - то http://lxr.php.net/xref/PHP_5_4/Zend/zend_operators.c#1402
...
Рейтинг: 0 / 0
Символ #0 в строках PHP
    #38535807
Програмёр
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ScareCrowавторНе понятна мне конечно причина такого поведения, но ладно
эм? если просто то потому что у нас есть язык с нестрогой типизацией ВЕЗДЕ.
если сложно - то http://lxr.php.net/xref/PHP_5_4/Zend/zend_operators.c#1402

При сравнении двух значений, определяется тип двух переменных и если обе имеют тип string, то отправляется в функцию, которая сначала преобразовывает обе строки в числа (если это возможно) и потом, если произошло переполнение, то идёт переход по ссылке string_cmp (не знаю, может это что стандартное, но я не нашёл данной ссылки в указанном файле), иначе выполняется сравнение двух числовых значений полученных от преобразований.

Непонятно 2 момента (я так понимаю Вы в теме, может сможете объяснить, а то я совсем не въезжаю):
1. почему проверка на переполнение не сработала (там я вижу ещё уйма условий проверяется, может в них дело... не влазил в самую глубину)?
2. а вообще, нафиг это надо (когда сверяем 2 строки). Если например предполагается, что мы хотим сравнить числа записанные в строках, то достаточно проверить обе строки по регулярке /^\d+(\.\d+)?$/ и если есть совпадение у обеих строк, то просто добираем строки нулями так, что бы до точки и после неё количество символов было одинаковым. После чего проводим как и обычно посимвольную сверку строк :)
Разве так не легче и не более правильно?
...
Рейтинг: 0 / 0
Символ #0 в строках PHP
    #38535861
Фотография ScareCrow
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
товарищь лейтенант - подумайте (С).
...
Рейтинг: 0 / 0
Символ #0 в строках PHP
    #38535915
Програмёр
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ScareCrow,

Думал перед тем, как написать, после этого. После Вашего ответа тоже думал... да вот не придумывается. В методе разработчиков есть какая-то сверхумная хитрость?
...
Рейтинг: 0 / 0
Символ #0 в строках PHP
    #38537344
InterSky
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ПрограмёрВ методе разработчиков есть какая-то сверхумная хитрость?
Эта хитрость внедрена по просьбе АНБ :)
...
Рейтинг: 0 / 0
Символ #0 в строках PHP
    #38537389
Програмёр
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
InterSkyПрограмёрВ методе разработчиков есть какая-то сверхумная хитрость?
Эта хитрость внедрена по просьбе АНБ :)

То есть рассказать никто не сможет? И через сколько предполагается рассекретить?
...
Рейтинг: 0 / 0
Символ #0 в строках PHP
    #38537486
Фотография ScareCrow
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
проверять регуляркой ВСЕ строки в слабо типизированном языке - медленно.
...
Рейтинг: 0 / 0
Символ #0 в строках PHP
    #38537487
Фотография ScareCrow
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
нафик - это надо. потому что через эту функцию работает половина php. это его принцип и фундамент.
...
Рейтинг: 0 / 0
Символ #0 в строках PHP
    #38537530
Програмёр
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ScareCrowпроверять регуляркой ВСЕ строки в слабо типизированном языке - медленно.

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

Ну что ж, надо привыкнуть строки сравнивать операцией строгого сравнения :)
...
Рейтинг: 0 / 0
Символ #0 в строках PHP
    #38537676
Фотография ScareCrow
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
авторНо учитывая особенность ПХП, где переменная хранится сразу во всех возможных типах (насколько я помню),
нет. ровно в одном типе
...
Рейтинг: 0 / 0
Символ #0 в строках PHP
    #38537710
InterSky
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ПрограмёрInterSkyЭта хитрость внедрена по просьбе АНБ :)То есть рассказать никто не сможет? И через сколько предполагается рассекретить?
Кто сказал что "рассказать никто не сможет"? Обвинить в нарушении тайны можно только в случае выполнения двух условий: есть нормативные документы в которых это объявляется тайной, и второе: лицо должно быть осведомлено о том что это является тайной. Ты где-то подписывал документы что тебя проинформировали о том что это тайна?

А через сколько обычно рассекречивают закладки спецслужб в программах?
Вон в Telegram недавно объявили о том что сервер посылает спецкод который позволяет генерировать ключи так что содержимое может читать третья сторона. А разработчики объявили это фичей которая помогает генерации лучшего рандомайза.
Так что никто объявлять не будет. Если найдут - объявят фичей (и главно что найдётся тысяча сторонников которые будут говорить что это крутая фича, как например тут в РНР), а если не найдут, то никто и не узнает...
...
Рейтинг: 0 / 0
Символ #0 в строках PHP
    #38537729
Програмёр
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ScareCrowавторНо учитывая особенность ПХП, где переменная хранится сразу во всех возможных типах (насколько я помню),
нет. ровно в одном типе

А... вот... нашёл. В источнике, где я это читал было неверно изложено... переменная хранится и правда только в одном типе (просто я Си не знаю, и потому поверил тому, что было написано, а оказывается там хитрость в union).

Но тогда возвращаясь обратно к вопросу производительности... Разве перевод двух строк в числа не займёт больше времени, чем проход по строкам регуляркой (или посимвольно, не знаю что быстрее) и потом посимвольное сравнение двух строк?

Как по мне, то по производительности варианты отличаться не должны (как минимум).

Хотя разработчики могли просто не заморачиваться... так как это скорее не востребовано и просто уберегает от случайной ошибки (при написании == вместо ===). Сложную арифметику со строками организовывать не логично (с массивами и удобнее и более правильно).

Потому в принципе при внимательном написании кода, разницы в подходах нету.
...
Рейтинг: 0 / 0
Символ #0 в строках PHP
    #38537818
InterSky
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ПрограмёрХотя разработчики могли просто не заморачиваться...
Так вопрос в том замеч надо строки перводить в числа при сравнении?
Если человек захочет сравнить строки '6' и '6.00' и чтобы показало что это одинаковые строки - он переведёт значения во Float.
Если каждая строка при сравнении вначале пытается перевестись в число и потом лишь при ошибке сравнивается как строка - это же на сколько производительность падает?
...
Рейтинг: 0 / 0
Символ #0 в строках PHP
    #38537829
Програмёр
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
InterSkyПрограмёрХотя разработчики могли просто не заморачиваться...
Так вопрос в том замеч надо строки перводить в числа при сравнении?
Если человек захочет сравнить строки '6' и '6.00' и чтобы показало что это одинаковые строки - он переведёт значения во Float.
Если каждая строка при сравнении вначале пытается перевестись в число и потом лишь при ошибке сравнивается как строка - это же на сколько производительность падает?

Так вот что больше всего бесит, так это неработающий лимит... То есть там установлено условие на переполнение, но при таком переполнении сравнение всёровно продолжается не со строками, а с числами... Потому и происходит то, что происходит :)

Насчёт производительности, разработчики ПХП не сильно то заморачивались на этом моменте ))) Если нужна производительность, стоит использовать что либо другое (например питон или С#/C++)
...
Рейтинг: 0 / 0
Символ #0 в строках PHP
    #38537997
InterSky
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ПрограмёрЕсли нужна производительность, стоит использовать что либо другое (например питон или С#/C++)Питон быстрее? Может подскажешь какую-нибудь небольшую статью о том что есть в Питоне чего нет РНР?
...
Рейтинг: 0 / 0
Символ #0 в строках PHP
    #38538176
Програмёр
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
InterSkyПрограмёрЕсли нужна производительность, стоит использовать что либо другое (например питон или С#/C++)Питон быстрее? Может подскажешь какую-нибудь небольшую статью о том что есть в Питоне чего нет РНР?

Насчёт статьи подсказать не могу... Да и вопрос "что есть в питоне чего нет в PHP" я не совсем понимаю :) Это 2 разных языка, которые так сравнивать нельзя... У них разное всё, начиная с синтаксиса, заканчивая предназначением (у меня лично несколько прог на компе стоит написанных на питоне. php же заточен под вэб, а потому десктопное приложение написать на нём думаю будет на порядок сложнее).

А насчёт примерчика доказывающего мои слова - без проблем :)
итак, у меня на компе (не судите строго... не сильный ноут, потому при перепроверке у вас цифры могут быть в разы меньше) было запущено 2 скрипта. Первый на питоне, второй на php. Питон версии 2.7.6 запускается через wsgi модуль апача (не думаю что лучший вариант, но мне так, чисто побаловаться).

Идею кода брал с тестового задания на собеседовании (в принципе ситуация жизненная). Задача - построение дерева из результата запроса к базе. Результат приходит в виде [["nodeId", "parentNodeId"], ["nodeId", "parentNodeId"], ...]

Код на PHP с построением дерева за 2 прохода:
Код: php
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
29.
30.
31.
32.
33.
34.
35.
36.
37.
38.
39.
40.
41.
42.
43.
<?php
  
function treeFromBase($queryResult){
  $tempTree = array();
  foreach($queryResult as $treeElement){
    $tempTree[$treeElement[0]] = array(
      'parent'=>$treeElement[1], 
      'children'=>array()
    );
  }
  
  $resTree = array();
  foreach($tempTree as $elementName=>&$treeElement){
    if($treeElement['parent']==NULL){
      $resTree[$elementName]=&$treeElement;
    }else{
      $tempTree[$treeElement['parent']]['children'][$elementName]=&$treeElement;
    }
  }
  return $resTree;
};

$start = time();

for($i=0; $i<800000; $i++){
$res = treeFromBase(array(
    array('parent_id1',NULL),
    array('parent_id2',NULL),
    array('id1',       'parent_id1'),
    array('id2',       'parent_id2'),
    array('subId2',    'id2'),
    array('subId2.1',  'id2'),
    array('subId1',    'id1'),
    array('subId1.1',  'id1'),
));
}
echo time()-$start;
  
  echo "<pre>";
  var_dump($res);
  echo "</pre>";
  
?>



приблизительно тот же код на питоне, выполняющий ту же задачу по тому же принципу:
Код: python
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
29.
30.
31.
32.
33.
34.
35.
36.
37.
from time import clock

def treeFromBase(arr):
  tempTree = {}
  for node in arr:
    tempTree[node[0]]={"parent": node[1], "children": {}}
    
  resTree = {}
  for nodeName in tempTree:
    if tempTree[nodeName]["parent"]==None:
      resTree[nodeName]=tempTree[nodeName]
    else:
      tempTree[tempTree[nodeName]["parent"]]["children"][nodeName]=tempTree[nodeName]
  
  return resTree

def application(environ, start_response):
  start = clock();
  for i in range(800000):
    res = treeFromBase([
      ['parent_id1',None],
      ['parent_id2',None],
      ['id1', 'parent_id1'],
      ['id2', 'parent_id2'],
      ['subId2', 'id2'],
      ['subId2.1', 'id2'],
      ['subId1', 'id1'],
      ['subId1.1', 'id1']
    ])

  status = '200 OK'
  output = (str)(clock()-start)+repr(res)
  response_headers = [('Content-type', 'text/plain'),
                      ('Content-Length', str(len(output)))]
  start_response(status, response_headers)
   
  return [output]



в результате, первый скрипт выводит правильную структуру, а также время выполнения цикла, которое составляет 25-26 секунд
второй скрипт выводит ту же правильную структуру (немного в другом формате), и время выполнения цикла в данном случае составляет 13.8-13.9 секунд.

Как видим, код на python отрабатывается вдвое быстрее
...
Рейтинг: 0 / 0
Символ #0 в строках PHP
    #38538253
InterSky
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Програмёрв результате, первый скрипт выводит правильную структуру, а также время выполнения цикла, которое составляет 25-26 секунд
второй скрипт выводит ту же правильную структуру (немного в другом формате), и время выполнения цикла в данном случае составляет 13.8-13.9 секунд.

Как видим, код на python отрабатывается вдвое быстрееУвеличение производительсности в 2 раза - мне кажется это рази чего стоит переходить на другой язык и полностью переписывать проект. Проще процессор купить новый. Вот из-за функционала - наверно стоило бы осваивать что-то новое. РНР огромным количеством функций заточен под web. Если питон - это компилятор, то разумеется он будет быстрей. Если он универсальный язык для всего и в тоже время ни под что-то конкретное, тогда я и на "Delphi for PHP" напишу программу которая думаю будет ещё быстрей.
Просто про питон всегда слышу только в контесте веб-разработок, по этому и хотел узнать - есть ли в нём что-то что для меня значительно расширит горизонты возможностей при написании сайтов...
...
Рейтинг: 0 / 0
Символ #0 в строках PHP
    #38538270
st_st
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
После Delphi легче переходить в asp.net или java.
...
Рейтинг: 0 / 0
Символ #0 в строках PHP
    #38538276
Програмёр
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
InterSky,

Асинхронность для highload проектов? :)
Ну я не знаю что ещё... в принципе данный язык знаю так... посредственно... Он мне по работе не пригодился (как-то так сложилось, что вошёл в вэб на PHP, и вот до сих пор на нём же и сижу, так как для разработчиков на питоне требования чуть больше, чем "знаю синтаксис, могу научиться...")

А вообще, что может так конкретно отличаться (теоретически) между двумя языками при написании сайта? Как по мне только быстродействие и удобство :) Удобство стоит оценивать для каждого человека и каждого проекта отдельно, по поводу быстродействия - данные уже привёл.

так что, в принципе изучить что-то новое, если есть время - никогда не зря. Мне вот например питон больше нравится, в нём код получается короче и более понятно... + он не даёт ломать отступы при вложенности (так как именно ними она и определяется)... + есть генераторы, + есть конструкции вида:
Код: python
1.
myVar = [x**2 for x in range(2, 100)];


получим список квадратов всех чисел от 2 до 100... или ещё интереснее
Код: python
1.
myVar = [x**2 for x in range(2, 100) if simple(x) else x**3];


тогда, если функция simple возвращает true для простых чисел и false в ином случае, то получим список с квадратами всех простых чисел и кубами всех остальных от 2 до 100. (о сферическом в вакууме :) )

Вроде как мелочи, а при написании кода экономит уйму места, символов и времени... И код в итоге получается понятнее (так как на выходе не целый блок, а всего одна строка).

Кстати, в PHP5.6 (по-моему в нём) решили тоже генераторы добавить :)
...
Рейтинг: 0 / 0
Символ #0 в строках PHP
    #38538476
InterSky
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Интересно. Надо попробывать. А изучал по какой-то книжке или что посоветуешь?
...
Рейтинг: 0 / 0
Символ #0 в строках PHP
    #38538538
Програмёр
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
InterSkyИнтересно. Надо попробывать. А изучал по какой-то книжке или что посоветуешь?

Начинал учить то я его по книге... Если не ошибаюсь, по картинке вроде эта . Но книги по программированию от корочки до корочки я читать не умею (там всё как-то медленно и много слов). В инэте всё короче и учится быстрее, потому по статьям бегаю, на том же http://habrahabr.ru/ например. Стараюсь ставить себе реальные задачи (например получил по работе задание... выполнил на php, а потом пытаюсь этот функционал на python'е сообразить), и по ходу возникновения проблем общаюсь с google.ru :)

P.S. Многие такой способ не одобряют, и первым делом задают вопрос "а какие книги по языку ты прочитал?", но вот у меня такой способ изучения как-то прижился. :)
...
Рейтинг: 0 / 0
Символ #0 в строках PHP
    #38538584
InterSky
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Ну в идеале был бы "беглый видео урок".
Чтобы в кратце, что да как, вот так делаются массивы, вот так циклы, а вот мы вывели массив циклом, загрузили файл от клиента и запихнули его в базу данных. А дальше уже нужен будет только список функций и всё :)
...
Рейтинг: 0 / 0
37 сообщений из 37, показаны все 2 страниц
Форумы / PHP, Perl, Python [игнор отключен] [закрыт для гостей] / Символ #0 в строках PHP
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]