За последние 24 часа нас посетили 210492 программиста и 2233 робота. Сейчас ищут 1469 программистов ...

Превозмогания тред

Тема в разделе "PHP для новичков", создана пользователем ubunta2, 27 июн 2017.

  1. ubunta2

    ubunta2 Зэк
    [ БАН ]

    С нами с:
    27 июн 2017
    Сообщения:
    947
    Симпатии:
    28
    PHP:
    1. <?php ## Возврат ссылки.
    2.  $a = 100;
    3.   function &r()   // & - возвращает ссылку
    4.   {
    5.     global $a;    // объявляет $a глобальной
    6.     return $a;    // возвращает, ссылку, а не значение!
    7.   }
    8.   $b =& r(); // не забудьте & !!!
    9.   $b = 0;    // присваивает переменной $a!
    10.   echo $a;   // выводит 0. Это значит, что теперь $b - синоним $a
    11. ?>
     
  2. mkramer

    mkramer Суперстар
    Команда форума Модератор

    С нами с:
    20 июн 2012
    Сообщения:
    8.600
    Симпатии:
    1.764
    Там реально ничего не объясняется? Потому что ссылка на переменную. Вон даже в комментариях сказано - ссылка. Без значков & копировалось бы значение, а так одна переменная становится синонимом другой, т.е. изменение $a ведёт к изменению $b и наоборот.
    https://secure.php.net/manual/ru/language.references.php
     
  3. Познающий php

    Познающий php Новичок

    С нами с:
    23 мар 2017
    Сообщения:
    381
    Симпатии:
    74
    Добавил его в игнор, а на главной все равно темы от него вижу. Недоработочка :(
     
  4. rewuxiin

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

    С нами с:
    17 апр 2012
    Сообщения:
    611
    Симпатии:
    87
    главная не связана с форумом, только выводит топики.
     
  5. denis01

    denis01 Суперстар
    Команда форума Модератор

    С нами с:
    9 дек 2014
    Сообщения:
    12.227
    Симпатии:
    1.714
    Адрес:
    Молдова, г.Кишинёв
    ты не из учебника берёшь код и сам его не пишешь, а где-то взял?
     
  6. ubunta2

    ubunta2 Зэк
    [ БАН ]

    С нами с:
    27 июн 2017
    Сообщения:
    947
    Симпатии:
    28
    PHP:
    1. <?php ## Извлекаем только четные элементы.
    2.  function reject($arr, $callback)
    3.   {
    4.   foreach($arr as $value) {
    5.   if(!$callback($value)) yield $value;
    6.   }
    7.   }
    8.  
    9.   $arr = [1, 2, 3, 4, 5, 6];
    10.   $reject = reject($arr, function($e){ return $e % 2 == 0 ? true : false; });
    11.   foreach($reject as $val) echo "$val ";
    12. ?>
     
    #356 ubunta2, 17 июл 2017
    Последнее редактирование модератором: 17 июл 2017
  7. alexblack

    alexblack Старожил

    С нами с:
    20 янв 2016
    Сообщения:
    640
    Симпатии:
    381
    Мне кажется тебе еще рановато для генераторов
     
  8. denis01

    denis01 Суперстар
    Команда форума Модератор

    С нами с:
    9 дек 2014
    Сообщения:
    12.227
    Симпатии:
    1.714
    Адрес:
    Молдова, г.Кишинёв
  9. MouseZver

    MouseZver Суперстар

    С нами с:
    1 апр 2013
    Сообщения:
    7.824
    Симпатии:
    1.333
    Адрес:
    Лень
    $e % 2 == 0 условие через каждые 2 числа
    поменяй на 3, через 3 будет
    1 4 7
     
  10. ubunta2

    ubunta2 Зэк
    [ БАН ]

    С нами с:
    27 июн 2017
    Сообщения:
    947
    Симпатии:
    28
    PHP:
    1. <?php ## Извлекаем только четные элементы.
    2.  function select($arr, $callback)
    3.   {
    4.     foreach($arr as $value) {
    5.       if($callback($value)) yield $value;
    6.     }
    7.   }
    8.  
    9.   $arr = [1, 2, 3, 4, 5, 6];
    10.  
    11.  
    12.   $select = select($arr, function($e){ return $e % 2 == 0 ? true : false; });
    13.   foreach($select as $val) echo "$val ";
    14. ?>
    А ТУТ 2 4 6
     
  11. [vs]

    [vs] Суперстар
    Команда форума Модератор

    С нами с:
    27 сен 2007
    Сообщения:
    10.559
    Симпатии:
    632
    @ubunta2 ну так найди единственное отличие в этих двух кодах
     
  12. ubunta2

    ubunta2 Зэк
    [ БАН ]

    С нами с:
    27 июн 2017
    Сообщения:
    947
    Симпатии:
    28
    все нашел
    и понял
     
  13. mkramer

    mkramer Суперстар
    Команда форума Модератор

    С нами с:
    20 июн 2012
    Сообщения:
    8.600
    Симпатии:
    1.764
    А что, должно было? Функции есть, вызовов нету
     
  14. ubunta2

    ubunta2 Зэк
    [ БАН ]

    С нами с:
    27 июн 2017
    Сообщения:
    947
    Симпатии:
    28
    Код (Text):
    1. <?php ## Возврат значения по ссылке
    2.   function &reference()
    3.   {
    4.     $value = 3;
    5.     while ($value > 0) {
    6.       yield $value;
    7.     }
    8.   }
    9.  
    10.   foreach (reference() as &$number) {
    11.     echo (--$number).' ';
    12.   }
    13. ?>
     
  15. ubunta2

    ubunta2 Зэк
    [ БАН ]

    С нами с:
    27 июн 2017
    Сообщения:
    947
    Симпатии:
    28
    готовый нашел и просто вставляю
     
  16. ubunta2

    ubunta2 Зэк
    [ БАН ]

    С нами с:
    27 июн 2017
    Сообщения:
    947
    Симпатии:
    28
    Код (Text):
    1. <?php ## Вывод UTF-8 символа русской буквы А.
    2.   echo "\u{0410}";
    3. ?>
     
  17. Ganzal

    Ganzal Суперстар
    Команда форума Модератор

    С нами с:
    15 мар 2007
    Сообщения:
    9.893
    Симпатии:
    965
    Впору отвечать "потому что такой алгоритм"...
     
  18. igordata

    igordata Суперстар
    Команда форума Модератор

    С нами с:
    18 мар 2010
    Сообщения:
    32.408
    Симпатии:
    1.768
    ээээээээ
    мммммммм
     
  19. ubunta2

    ubunta2 Зэк
    [ БАН ]

    С нами с:
    27 июн 2017
    Сообщения:
    947
    Симпатии:
    28
  20. denis01

    denis01 Суперстар
    Команда форума Модератор

    С нами с:
    9 дек 2014
    Сообщения:
    12.227
    Симпатии:
    1.714
    Адрес:
    Молдова, г.Кишинёв
    @ubunta2 понятно как это работает?
     
  21. Ganzal

    Ganzal Суперстар
    Команда форума Модератор

    С нами с:
    15 мар 2007
    Сообщения:
    9.893
    Симпатии:
    965
    предекремент+эхо в цикле. ок? там вообще должно вывестись через пробел. а еще можно конкатенацию оптимизировать до аргументов конструкции эхо.
     
  22. [vs]

    [vs] Суперстар
    Команда форума Модератор

    С нами с:
    27 сен 2007
    Сообщения:
    10.559
    Симпатии:
    632
    Специсмволы \n - перевод строки, \t - табуляция, \u - код символа, и т.д.
     
  23. ubunta2

    ubunta2 Зэк
    [ БАН ]

    С нами с:
    27 июн 2017
    Сообщения:
    947
    Симпатии:
    28
    это я знаю
    вроде да
     
    denis01 нравится это.
  24. denis01

    denis01 Суперстар
    Команда форума Модератор

    С нами с:
    9 дек 2014
    Сообщения:
    12.227
    Симпатии:
    1.714
    Адрес:
    Молдова, г.Кишинёв
    @ubunta2 зачем так делать?
     
  25. ubunta2

    ubunta2 Зэк
    [ БАН ]

    С нами с:
    27 июн 2017
    Сообщения:
    947
    Симпатии:
    28
    PHP:
    1. <?php ## Множественная замена в строке.
    2.  $from = ["{TITLE}", "{BODY}"];
    3.   $to   = [
    4.     "Философия",
    5.     "Представляется логичным, что сомнение представляет онтологический смысл жизни. Отношение к современности поразительно."
    6.   ];
    7.   $template =<<<MARKER
    8. <!DOCTYPE html>
    9. <html lang='ru'>
    10. <head>
    11.   <title>{TITLE}</title>
    12.   <meta charset='utf-8'>
    13. </head>
    14. <body>{BODY}</body>
    15. </html>
    16. MARKER;
    17.   echo str_replace($from, $to, $template);
    18. ?>