За последние 24 часа нас посетили 40773 программиста и 7398 роботов. Сейчас ищут 1474 программиста ...

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

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

  1. [vs]

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

    С нами с:
    27 сен 2007
    Сообщения:
    10.543
    Симпатии:
    623
    Нативная сериализация в десятки раз быстрее, чем json. Кстати, json не хранит информации о классе сериализованного объекта.
     
  2. Mitai

    Mitai Новичок

    С нами с:
    23 окт 2016
    Сообщения:
    155
    Симпатии:
    24
    Данная книга не подходит новичку в программировании, автор ведет расчет на людей которые уже практикуют и имеют базовые понятия
     
  3. Fell-x27

    Fell-x27 Суперстар
    Команда форума Модератор

    С нами с:
    25 июл 2013
    Сообщения:
    12.012
    Симпатии:
    1.679
    Адрес:
    :сердА
    1) Учитывая, с какой скоростью работает JSON, вот честно, вообще пофигу, займет дессериализация 0.0000001 секунды или 0.000001 секунды.
    2) В подавляющем большинстве случаев сериализация преследует лишь одну цель - упаковать абстрактную структуру данных, типа массива, в строку, чтобы можно было хранить "как есть". Хранение именно объектов с сохранением класса между сессиями - это уже экзотика. Мне такой механизм пригодился всего в одном-единственном кейсе, в десктопной разработке писалась софтина для генерации карт растровых шрифтов для игрового движка. И там я прям честно паковал и писал в файл объект. А потом распаковывал обратно. Но и то, это была вкрай специфичная тема, завязанная на особенность логики движка, для которого это предназначалось. На деле даже там можно было тупо структуру хранить, без спецификации по классу.
     
  4. ubunta2

    ubunta2 Зэк
    [ БАН ]

    С нами с:
    27 июн 2017
    Сообщения:
    947
    Симпатии:
    28
    PHP:
    1. <!DOCTYPE html>
    2. <html lang="ru">
    3. <head>
    4.   <title>Пример функции и ее использования</title>
    5.   <meta charset='utf-8'>
    6. </head>
    7. <body>
    8. <?php
    9.   // Функция принимает ассоциативный массив и создает несколько
    10.   // тэгов <option value="$key">$value, где $key - очередной
    11.   // ключ массива, а $value - очередное значение. Если задан
    12.   // также и второй параметр, то у соответствующего тэга option
    13.   // проставляется атрибут selected.
    14.   function selectItems($items, $selected = 0)
    15.   {
    16.     $text = "";
    17.     foreach ($items as $k => $v) {
    18.       if ($k === $selected)
    19.         $ch = " selected";
    20.       else
    21.         $ch = "";
    22.       $text .= "<option$ch value='$k'>$v</option>\n";  
    23.     }
    24.     return $text;
    25.   }
    26.   // Предположим, у нас есть массив имен и фамилий.
    27.   $names = [
    28.     "Weaving"  => "Hugo",
    29.     "Goddard"  => "Paul",
    30.     "Taylor"   => "Robert",
    31.   ];
    32.   // Если был выбран элемент, вывести информацию.
    33.   if (isset($_REQUEST['surname'])) {
    34.     $name = $names[$_REQUEST['surname']];
    35.     echo "Вы выбрали: {$_REQUEST['surname']}, {$name} ";
    36.   }
    37. ?>
    38. <!-- Форма для выбора имени человека. -->
    39. <form action="<?=$_SERVER['SCRIPT_NAME']?>" method="POST">
    40.   Выберите имя:
    41.   <select name="surname">
    42.     <?=selectItems($names, $_REQUEST['surname'])?>
    43.   </select><br />
    44.   <input type="submit" value="Узнать фамилию">
    45. </form>
    46. </body>
    47. </html>

    непонятно
    PHP:
    1.   function selectItems($items, $selected = 0)
    2.   {
    3.     $text = "";
    4.     foreach ($items as $k => $v) {
    5.       if ($k === $selected)
    6.         $ch = " selected";
    7.       else
    8.         $ch = "";
    9.       $text .= "<option$ch value='$k'>$v</option>\n";
    10.     }
    11.     return $text;
    12.   }
     
  5. ADSoft

    ADSoft Старожил

    С нами с:
    12 мар 2007
    Сообщения:
    3.874
    Симпатии:
    753
    Адрес:
    Татарстан
    не только вам.....
     
    mahmuzar нравится это.
  6. Maputo

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

    С нами с:
    30 июл 2015
    Сообщения:
    1.136
    Симпатии:
    173
    Эта функция создает выпадающий список, в котором установлен выбраный пользователем элемент.
     
  7. Познающий php

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

    С нами с:
    23 мар 2017
    Сообщения:
    381
    Симпатии:
    74
    А что там непонятного? Там даже подробное описание дано в комментах

     
  8. ubunta2

    ubunta2 Зэк
    [ БАН ]

    С нами с:
    27 июн 2017
    Сообщения:
    947
    Симпатии:
    28
    PHP:
    1. <?php ## Передача параметров по ссылке.
    2.  function increment(&$a) // $a - ссылочная
    3.   {
    4.     echo "Текущее значение: $a<br />";
    5.     $a++;
    6.     echo "После увеличения: $a<br />";
    7.   }
    8.   # ...
    9.  $num = 10;
    10.   echo "Начальное значение: $num<br />";
    11.   increment($num); // передача по ссылке
    12.   echo "После вызова функции: $num<br />";  // 11!
    13. ?>
    вывелось
    Начальное значение: 10
    Текущее значение: 10
    После увеличения: 11
    После вызова функции: 11
     
  9. teleoperator

    teleoperator Зэк
    [ БАН ]

    С нами с:
    3 июл 2017
    Сообщения:
    107
    Симпатии:
    29
    А подумать если?
     
    mkramer нравится это.
  10. ADSoft

    ADSoft Старожил

    С нами с:
    12 мар 2007
    Сообщения:
    3.874
    Симпатии:
    753
    Адрес:
    Татарстан
    ссыль же
     
  11. mkramer

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

    С нами с:
    20 июн 2012
    Сообщения:
    8.497
    Симпатии:
    1.726
    Неужели костеров не объясняет, зачем передаётся по ссылке? Как раз и передаётся, чтоб изменения значения параметра сказывались на переданной переменной. Иногда бывает полезно, хотя лучше пользоваться ограниченно.
     
  12. Алекс8

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

    С нами с:
    18 май 2017
    Сообщения:
    1.724
    Симпатии:
    358
    не люблю ссылки)... где то что то меняет - а потом ищешь кто и где поменял)) как с глобальными переменными))
     
  13. ubunta2

    ubunta2 Зэк
    [ БАН ]

    С нами с:
    27 июн 2017
    Сообщения:
    947
    Симпатии:
    28
    PHP:
    1. <?php ## Типы аргументов и возвращаемого значения
    2.  function sum(int $fst, int $snd) : int
    3.   {
    4.     return $fst + $snd;
    5.   }
    6.   echo sum(2, 2);
    7.   echo sum(2.5, 2.5); // Fatal Error в PHP < 7, Exception TypeError в PHP >=7
    8. ?>
     
  14. romach

    romach Старожил

    С нами с:
    26 окт 2013
    Сообщения:
    2.897
    Симпатии:
    718
    серьезно?
     
    Maputo нравится это.
  15. Познающий php

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

    С нами с:
    23 мар 2017
    Сообщения:
    381
    Симпатии:
    74
  16. MouseZver

    MouseZver Суперстар

    С нами с:
    1 апр 2013
    Сообщения:
    7.840
    Симпатии:
    1.338
    Адрес:
    Лень
    там не 44 а 4 и 4
    --- Добавлено ---
    int тупо обрезал все что после циферок
    (int $fst, int $snd)
     
  17. igordata

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

    С нами с:
    18 мар 2010
    Сообщения:
    32.333
    Симпатии:
    1.753
  18. MouseZver

    MouseZver Суперстар

    С нами с:
    1 апр 2013
    Сообщения:
    7.840
    Симпатии:
    1.338
    Адрес:
    Лень
    тогда 2 + 2 = 22, а у тс 44
     
  19. igordata

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

    С нами с:
    18 мар 2010
    Сообщения:
    32.333
    Симпатии:
    1.753
  20. romach

    romach Старожил

    С нами с:
    26 окт 2013
    Сообщения:
    2.897
    Симпатии:
    718
    Нет. Это type hinting, в данном случае оно ни чего не обрежет, а упадет с TypeError
     
  21. TeslaFeo

    TeslaFeo Старожил

    С нами с:
    9 мар 2016
    Сообщения:
    2.971
    Симпатии:
    753
    от куда тогда вторая четверка?
     
  22. MouseZver

    MouseZver Суперстар

    С нами с:
    1 апр 2013
    Сообщения:
    7.840
    Симпатии:
    1.338
    Адрес:
    Лень
    PHP:
    1. <?php
    2. error_reporting ( E_ALL );
    3. ## Типы аргументов и возвращаемого значения
    4. function sum(int $fst, int $snd) : int
    5.   {
    6.     return $fst + $snd;
    7.   }
    8.   echo sum(2, 2);
    9.   echo '<br>';
    10.   echo sum(2.5, 2.5);
    что то не плюется ошибками o_O
    --- Добавлено ---
    зрз 7
     
  23. romach

    romach Старожил

    С нами с:
    26 окт 2013
    Сообщения:
    2.897
    Симпатии:
    718
    хех, опять у них всё через жопу ) Не, я могу понять когда строку к числу приводят, но float / int это всё же ни разу не одинаковые вещи.
     
  24. mkramer

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

    С нами с:
    20 июн 2012
    Сообщения:
    8.497
    Симпатии:
    1.726
    Да ладно, даже C++ себя так же поведёт. https://codepad.remoteinterview.io/EDBSDYECKX
    Код (Text):
    1.  
    2. #include <iostream>
    3.  
    4. using namespace std;
    5.  
    6. void f(int a, int b)
    7. {
    8.     cout << (a + b);
    9. }
    10.  
    11. int main()
    12. {
    13.    f(2.5, 2.5);
    14.    
    15.    return 0;
    16. }
     
  25. romach

    romach Старожил

    С нами с:
    26 окт 2013
    Сообщения:
    2.897
    Симпатии:
    718
    Но это же не правильно )