За последние 24 часа нас посетили 204673 программиста и 2232 робота. Сейчас ищут 1685 программистов ...

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

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

  1. [vs]

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

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

    Mitai Новичок

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

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

    С нами с:
    25 июл 2013
    Сообщения:
    12.156
    Симпатии:
    1.771
    Адрес:
    :сердА
    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.870
    Симпатии:
    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.870
    Симпатии:
    753
    Адрес:
    Татарстан
    ссыль же
     
  11. mkramer

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

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

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

    С нами с:
    18 май 2017
    Сообщения:
    1.730
    Симпатии:
    359
    не люблю ссылки)... где то что то меняет - а потом ищешь кто и где поменял)) как с глобальными переменными))
     
  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.904
    Симпатии:
    719
    серьезно?
     
    Maputo нравится это.
  15. Познающий php

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

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

    MouseZver Суперстар

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

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

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

    MouseZver Суперстар

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

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

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

    romach Старожил

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

    TeslaFeo Старожил

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

    MouseZver Суперстар

    С нами с:
    1 апр 2013
    Сообщения:
    7.824
    Симпатии:
    1.333
    Адрес:
    Лень
    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.904
    Симпатии:
    719
    хех, опять у них всё через жопу ) Не, я могу понять когда строку к числу приводят, но float / int это всё же ни разу не одинаковые вещи.
     
  24. mkramer

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

    С нами с:
    20 июн 2012
    Сообщения:
    8.600
    Симпатии:
    1.764
    Да ладно, даже 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.904
    Симпатии:
    719
    Но это же не правильно )