За последние 24 часа нас посетили 22683 программиста и 1278 роботов. Сейчас ищут 762 программиста ...

Кружок любопытных извращенцев :)

Тема в разделе "Прочие вопросы по PHP", создана пользователем Psih, 9 июн 2009.

  1. Apple

    Apple Активный пользователь

    С нами с:
    13 янв 2007
    Сообщения:
    4.984
    Симпатии:
    2
    В том, что можно без стыда и совести использовать двойные, потому что они мне нравятся =)

    Посчитаем, ток чуть попозже.
     
  2. 440Hz

    440Hz Старожил
    Команда форума Модератор

    С нами с:
    21 дек 2012
    Сообщения:
    8.003
    Симпатии:
    1
    Адрес:
    Оттуда
    все говно начинается тогда, когда в "" стоят переменные, пАтаму Чито, php вычисляет переменные в них, а в одинарных нет.

    вывод:
    если не использовать пеерменные в кавычках, то пох какие и куда.

    и вся мутотень отсюда и растет.
     
  3. dots_rei

    dots_rei Активный пользователь

    С нами с:
    7 авг 2009
    Сообщения:
    193
    Симпатии:
    0
    тогда для подстановки переменных в строки лучше использовать конкатенацию?
     
  4. kostyl

    kostyl Guest

    Если Apple посчитает, то я скажу тебе когда. А вообще я, например, все время "конкатенирую", так проще воспринимать код.
     
  5. обожаю спичечную оптимизацию :)
     
  6. kostyl

    kostyl Guest

    я бы сказал волосинечную
     
  7. 440Hz

    440Hz Старожил
    Команда форума Модератор

    С нами с:
    21 дек 2012
    Сообщения:
    8.003
    Симпатии:
    1
    Адрес:
    Оттуда
    даешь МикроОптимизацию и RISС процессоры!
     
  8. TheShock

    TheShock Активный пользователь

    С нами с:
    30 май 2009
    Сообщения:
    1.255
    Симпатии:
    0
    Адрес:
    Київ
    хехей, народ. вы не на том форуме собрались! вам сюда:

    http://www.cyberforum.ru/assembler/
    http://forum.developing.ru/forumdisplay.php?f=15

    а на счет того, какие кавычки проще вопринимаются:

    Код (Text):
    1. // Без экранизации
    2. "<img src='$img->src' width='$img->width' height='$img->height' alt='$img->alt' />";
    3. '<img src="'.$img->src.'" width="'.$img->width.'" height="'.$img->height.'" alt="'.$img->alt.'" />';
    4.  
    5. // C экранизацией
    6. "<img src=\"$img->src\" width=\"$img->width\" height=\"$img->height\" alt=\"$img->alt\" />";
    7. '<img src=\''.$img->src.'\' width=\''.$img->width.'\' height=\''.$img->height.'\' alt=\''.$img->alt.'\' />';
    По-моему ответ вполне очевидный. Последнее — вообще брейнфак какой-то. А первое — любая иде подсветит так, что залюбуешься.

    А на счёт скорости выполнения. Если взять любой действующий проект и перевести с одинарных кавычек на двойные, или с двойных на одинарные, то разница полностью расплывется и будет совершенно незаметной за общим временем выполнения скрипта. Вполне возможно, что, даже, двойные кавычки покажут себя лучше (дело случая).
     
  9. Apple

    Apple Активный пользователь

    С нами с:
    13 янв 2007
    Сообщения:
    4.984
    Симпатии:
    2
    Тест, что обещал ранее:

    PHP:
    1. <?php
    2.  
    3. $start  = microtime(true);
    4. //--------------------------------------
    5. for($i = 0; $i <= 1000000; $i++) {
    6.     'strings'.'without'.'variables';
    7. }
    8.  
    9. echo (microtime(true) - $start)."\n";
    10. //--------------------------------------
    11. $start  = microtime(true);
    12. //--------------------------------------
    13. for($i = 0; $i <= 1000000; $i++) {
    14.     "strings"."without"."variables";
    15. }
    16.  
    17. echo (microtime(true) - $start)."\n";
    18.  
    19. ?>
    Результаты
    Код (Text):
    1. C:\Users\Apple>php -f E:\htdocs\index.php
    2. 0.02961802482605
    3. 0.025989055633545
    4.  
    5. C:\Users\Apple>php -f E:\htdocs\index.php
    6. 0.27894902229309
    7. 0.28469586372375
    8.  
    9. C:\Users\Apple>php -f E:\htdocs\index.php
    10. 0.45121788978577
    11. 0.49016189575195
    12.  
    13. C:\Users\Apple>php -f E:\htdocs\index.php
    14. 0.44262003898621
    15. 0.49233293533325
    16.  
    17. C:\Users\Apple>php -f E:\htdocs\index.php
    18. 0.4439971446991
    19. 0.53842401504517
    20.  
    21. C:\Users\Apple>php -f E:\htdocs\index.php
    22. 0.42234492301941
    23. 0.48752093315125
    24.  
    25. C:\Users\Apple>php -f E:\htdocs\index.php
    26. 0.60848689079285
    27. 0.60828495025635
    Разница никакая.
    А теперь внимание:

    PHP:
    1. <?php
    2.  
    3. $abcde = 'Variable';
    4. $start = microtime(true);
    5. //--------------------------------------
    6. for($i = 0; $i <= 1000000; $i++) {
    7.     'ABC'.$abcde.'DEF';
    8. }
    9.  
    10. echo (microtime(true) - $start)."\n";
    11. //--------------------------------------
    12. $start  = microtime(true);
    13. //--------------------------------------
    14. for($i = 0; $i <= 1000000; $i++) {
    15.     "ABC {$abcde} DEF";
    16. }
    17.  
    18. echo (microtime(true) - $start)."\n";
    19.  
    20. ?>
    Результат
    Код (Text):
    1. C:\Users\Apple>php -f E:\htdocs\index.php
    2. 0.56806898117065
    3. 0.69460606575012
    4.  
    5. C:\Users\Apple>php -f E:\htdocs\index.php
    6. 0.55630993843079
    7. 0.75366806983948
    8.  
    9. C:\Users\Apple>php -f E:\htdocs\index.php
    10. 0.55321502685547
    11. 0.72699522972107
    Ещё раз для наглядности провел этот тест.
    Т.е конкатенация любых типов строк оказывается быстрее обычной красивой вставки внутрь строк, обрамленных двойными кавычками.
    Что и требовалось доказать (ЧТД).
     
  10. iliavlad

    iliavlad Активный пользователь

    С нами с:
    24 янв 2009
    Сообщения:
    1.689
    Симпатии:
    4
    надо было попробовать на стомегабайтных строках)

    http://www.php.ru/forum/viewtopic.php?t=20507

    тут вот вообще всего 60000 раз конкатенировали и минуту ждали.
     
  11. Apple

    Apple Активный пользователь

    С нами с:
    13 янв 2007
    Сообщения:
    4.984
    Симпатии:
    2
    Надо будет попробовать =)
     
  12. Apple

    Apple Активный пользователь

    С нами с:
    13 янв 2007
    Сообщения:
    4.984
    Симпатии:
    2
    Ну что ж, решил проексперементировать.
    Взял видео анального порно, считал его и записал в РНР-файл.
    Т.е сгенерировал файл со строкой, содержимое которой указано выше =)

    Оперативной памяти не хватило, чтобы разместить строку, так что пускай пробуют другие.
     
  13. TheShock

    TheShock Активный пользователь

    С нами с:
    30 май 2009
    Сообщения:
    1.255
    Симпатии:
    0
    Адрес:
    Київ
    а при чём там конкатенация?
     
  14. Kreker

    Kreker Старожил

    С нами с:
    8 апр 2007
    Сообщения:
    5.433
    Симпатии:
    0
    Фу
     
  15. kostyl

    kostyl Guest

    Вообще я говорил о том, чтобы измерить при каком количестве переменных конкатенация медленнее, чем парсить строку с таким же количеством переменных в двойных кавычках.
     
  16. Apple

    Apple Активный пользователь

    С нами с:
    13 янв 2007
    Сообщения:
    4.984
    Симпатии:
    2
    Во всех случаях конкатенация любых типов строк обыгрывает переменные в двойных кавычках.

    Ты просто не пробовал это =)
    Я когда-то сам морду воротил
     
  17. упал паццтол ) какая милая двусмысленность...
     
  18. Apple

    Apple Активный пользователь

    С нами с:
    13 янв 2007
    Сообщения:
    4.984
    Симпатии:
    2
    Кхм, я бы сказал однозначность.
     
  19. «Но есть один маленький нюанс!» ©

     
  20. Koc

    Koc Активный пользователь

    С нами с:
    3 мар 2008
    Сообщения:
    2.253
    Симпатии:
    0
    Адрес:
    \Ukraine\Dnepropetrovsk
  21. Apple

    Apple Активный пользователь

    С нами с:
    13 янв 2007
    Сообщения:
    4.984
    Симпатии:
    2
    Похоже в данном случае нюанс в том, что для каждого из вас приятней думать так, как хочется думать, а как оно на самом деле — это не важно, ведь более важно само мнение, нежели его объективность.
    Кто-то говорил, что мнение на Хабре должно довпадать с мнением большинства, но если большинство будет думать так, как они захотят, а не как оно есть на самом деле, что мы получим?
    Закомплексованное общество, которое боится всего на свете, потому что любой поступок, не вписывающийся в понимание большинства, будет расценен неправильным.
    А ещё более трусливые люди, входящие в состав этого общества, будут демонстративно выступать за неправильность этого поступка, потому что они, повязанные таким же желанием, сами боятся пойти против этого общества, и моральным удовлетворением для них всегда является унижение тех, кто был выше того, чтобы следовать нормативам большинства.

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

    И, как было недавно сказано, Bah!
     
  22. Apple

    Apple Активный пользователь

    С нами с:
    13 янв 2007
    Сообщения:
    4.984
    Симпатии:
    2
    Koc
    блин, какой идиот постоянно глумится над АннойСофией.
     
  23. TheShock

    TheShock Активный пользователь

    С нами с:
    30 май 2009
    Сообщения:
    1.255
    Симпатии:
    0
    Адрес:
    Київ
    Народ, хватит!
     
  24. что ты резонируешь на чужие мнения. Ты резонируешь, заметь. ;)

    Вкусная троллячья нямка! ням!!
     
  25. 440Hz

    440Hz Старожил
    Команда форума Модератор

    С нами с:
    21 дек 2012
    Сообщения:
    8.003
    Симпатии:
    1
    Адрес:
    Оттуда
    ты за других то не решай. ты за себя ответь.
    =)

    и челобитную! челобитную!