Форум программистов, компьютерный форум, киберфорум
Наши страницы
PHP для начинающих
Войти
Регистрация
Восстановить пароль
 
Рейтинг 4.88/86: Рейтинг темы: голосов - 86, средняя оценка - 4.88
Azdeman
Фрилансер
Эксперт HTML/CSSЭксперт PHP
1738 / 1281 / 579
Регистрация: 12.01.2011
Сообщений: 5,082
1

PHP7 Что нового?

05.12.2015, 15:46. Просмотров 15782. Ответов 19
Метки нет (Все метки)

Здравствуйте уважаемые форумчане, как вы все знаете вышла новая версия языка программирование PHP. Многие его ждали и вот свершилось чудо. Так что теперь есть возможность почитать в этой теме что нового предоставили нам разработчики. Так же вы можете уже Скачать новую версию PHP7.. Всех Благ!
  • Улучшение быстродействия. PHP 7 работает до двух раз быстрее чем PHP 5.6.
  • Добавлена поддержка сокращенной конструкции use:
    PHP
    1
    2
    3
    4
    5
    
    use Symfony\Component\Console\{
      Helper\Table,
      Question\ChoiceQuestion as Choice,
      Question\ConfirmationQuestion,
    };
  • Добавлен оператор "??" (Null coalescing operator), позволяющий проверить переменную на существование и вернуть ее значение либо значение по умолчанию.
    Например следующая конструкция:
    PHP
    1
    
    $action = isset($_POST['action']) ? $_POST['action'] : 'index';
    Теперь может быть коротко записана так:
    PHP
    1
    
    $action = $_POST['action'] ?? 'index';
  • Добавлена поддержка строк длиной больше 2^31 байт в 64-битных билдах.
  • Добавлен метод Closure::call(object $to[, mixed $parameters]), позволяющий вызвать анонимную функцию с произвольным $this.
  • Добавлен синтаксис \u{xxxxxx} для строк, позволяющий указывать произвольные Unicode символы в строках.
  • В качестве значения констант, объявляемых через define() теперь можно указывать массивы.
  • Добавлен новый оператор сравнения <=>, так же известный как «spaceship operator». Конструкция $a <=> $b возвращает -1, 0 или +1 если $a соответственно меньше, равно или больше $b. Удобно использовать в колбэках для usort().
  • Зарезервированные ключевые слова теперь можно использовать в качестве имен методов:
    PHP
    1
    
    $object::new('foo', 'bar')->forEach(function($index, $item) {});
  • Синтаксис конструкторов в стиле PHP 4 (имя метода конструктора совпадает с именем класса) теперь считается устаревшим.
  • Статичные вызовы (: нестатичных методов теперь считаются устаревшими.
  • Добавлена константа PHP_INT_MIN.
  • Удалена INI директива «asp_tags». Попытка включить ее приведет к фатальной ошибке. Так же удалена поддержка тэгов в стиле ASP (<%).
  • Удалена INI директива «always_populate_raw_post_data». Переменная $HTTP_RAW_POST_DATA соответственно больше не доступна. Вместо нее используйте дескриптор входного потока php://input.
  • Итерация по массиву при помощи foreach() больше не сдвигает внутренний указатель массива, который можно получать и изменять при помощи функций current()/next()/reset() и им подобных. Так же foreach по значению теперь всегда работает с копией массива.
  • Оператор левого побитового сдвига (<<) на количество бит, превышающее количество бит в integer теперь всегда возвращает 0. До этого результат зависел от архитектуры процессора. Аналогичный правый сдвиг всегда дает 0 или -1 в зависимости от знака исходного числа (Сдвиг не влияет на старший бит, отвечающий за знак).
  • Строки, содержащие шестнадцатеричные числа теперь всегда обрабатываются как строки и не обрабатываются как числа: is_numeric(«0xFF») теперь false, раньше было true со всеми вытекающими.
  • Целые числа в 64-х битных билдах для Windows теперь представляются в виде 64-х битных, а не как раньше, 32-х, что делало использование х64 сборок на Windows бессмысленным занятием, если нужны манипуляции с большими числами.
  • Удалена поддержка модификатора /e в PCRE. Аналогичная функциональность может быть реализована функцией preg_replace_callback().
  • Добавлена поддержка type-hint'ов для скалярных типов. Ранее контроль типов был возможен только для классов, интерфейсов, массивов и типа callable.
  • Удалены старые и не поддерживаемые SAPI и расширения.

    Изменения в обработке переменных
    1. Косвенные ссылки на переменные, свойства и методы теперь разбираются слева направо. Восстановить прежний порядок можно фигурными скобками.
    PHP
    1
    2
    3
    4
    
    $$foo['bar']['baz']   // разбирается как ($$foo)['bar']['baz']    - ранее как ${$foo['bar']['baz']}
    $foo->$bar['baz']   // разбирается как ($foo->$bar)['baz']    - ранее как $foo->{$bar['baz']}
    $foo->$bar['baz']() // разбирается как ($foo->$bar)['baz']() - ранее как $foo->{$bar['baz']}()
    Foo::$bar['baz']()   // разбирается как (Foo::$bar)['baz']()   - ранее как Foo::{$bar['baz']}()
    2. Ключевое слово global принимает только простые переменные. Вместо global $$foo->bar следует писать global ${$foo->bar}
    3. Скобки вокруг переменных или вызовов функций больше не влияют на поведение. Например, код, где результат функции передается по ссылке:
    PHP
    1
    2
    3
    4
    5
    6
    
    function getArray() { return [1, 2, 3]; }
     
          $last = array_pop(getArray());
          // Strict Standards: Only variables should be passed by reference
          $last = array_pop((getArray()));
          // Strict Standards: Only variables should be passed by reference
    сейчас выбросит ошибку strict standards вне зависимости от скобок (ранее во втором вызове ее не было).

    4. Элементы массива или свойства объекта, которые были автоматически созданы во время присвоений по ссылке сейчас будут иметь другой порядок. Код:
    PHP
    1
    2
    3
    4
    
    $array = [];
          $array["a"] =& $array["b"];
          $array["b"] = 1;
          var_dump($array);
    сейчас сгенерирует массив [«a» => 1, «b» => 1], тогда как ранее был [«b» => 1, «a» => 1].

    Изменения в обработке list()
    1. list() теперь присваивает переменные в прямом порядке (ранее — в обратном), например:
    PHP
    1
    2
    
     list($array[], $array[], $array[]) = [1, 2, 3];
          var_dump($array);
    сейчас выдаст $array == [1, 2, 3] вместо [3, 2, 1]. Изменился только порядок присвоения, т.е. нормальное использование list() не затронуто.

    2. Присвоения с пустым списком list() стали запрещены, следующие выражения ошибочны:
    PHP
    1
    2
    3
    
    list() = $a;
    list(,,) = $a;
    list($x, list(), $y) = $a;
    3. list() больше не поддерживает распаковку строк (ранее поддерживалась в некоторых случаях). Код:
    PHP
    1
    2
    
    $string = "xy";
    list($x, $y) = $string;
    установит $x и $y в значение null (без предупреждений) вместо $x == «x» и $y == «y». Более того, list() теперь гарантированно работает с объектами, реализующими интерфейс ArrayAccess, т.е. вот так заработает:
    PHP
    1
    
    list($a, $b) = (object) new ArrayObject([0, 1]);
    Ранее в обе переменные был бы занесен null.
    Изменения в foreach
    1. Итерации в foreach() больше не влияют на внутренний указатель массива, который доступен через семейство функций current()/next()/…
    PHP
    1
    2
    3
    4
    
    $array = [0, 1, 2];
          foreach ($array as &$val) {
              var_dump(current($array));
          }
    сейчас напечатает int(0) три раза. Ранее — int(1), int(2), bool(false)
    2. Во время итерирования массивов по значению, foreach теперь пользуется копией массива, и его изменения внутри цикла не повлияют на поведение цикла:
    PHP
    1
    2
    3
    4
    5
    6
    
    $array = [0, 1, 2];
          $ref =& $array; // необходимо, чтобы включить старое поведение
          foreach ($array as $val) {
              var_dump($val);
              unset($array[1]);
          }
    Код напечатает все значения (0 1 2), ранее второй элемент выкидывался — (0 2).
    3. Когда итерируются массивы по ссылке, изменения в массиве будут влиять на цикл. Предполагается, что PHP лучше будет отрабатывать ряд случаев, например, добавление в конец массива:
    PHP
    1
    2
    3
    4
    5
    
     $array = [0];
          foreach ($array as &$val) {
              var_dump($val);
              $array[1] = 1;
          }
    проитерирует и добавленный элемент. Вывод будет «int(0) int(1)», ранее было только «int(0)».

    4. Итерирование обычных (не Traversable) объектов по значению или по ссылке будет вести себя как итерирование по ссылке для массивов. Ранее — аналогично, за исключением более точного позиционирования из предыдущего пункта.

    5. Итерирование Traversable объектов не изменилось.

    Изменения в обработке аргументов функций
    1. Больше нельзя использовать одинаковые имена для аргументов (будет ошибка компиляции):
    PHP
    1
    2
    3
    
    public function foo($a, $b, $unused, $unused) {
              // ...
          }
    2. Функции func_get_arg() и func_get_args() теперь вернут текущее значение (а не исходное). Например:
    PHP
    1
    2
    3
    4
    5
    
      function foo($x) {
              $x++;
              var_dump(func_get_arg(0));
          }
          foo(1);
    выведет «2» вместо «1».
    3. Похожим образом трейсы в исключениях не будет выводить оригинальные значения, а уже измененные:
    PHP
    1
    2
    3
    4
    5
    
    function foo($x) {
              $x = 42;
              throw new Exception;
          }
          foo("string");
    теперь выдаст:
    Stack trace: #0 file.php(4): foo(42) #1 {main}

    Ранее было бы так:
    Stack trace: #0 file.php(4): foo('string') #1 {main}

    Хоть это и не влияет на исполнение, но следует иметь это в виду при отладке. То же ограничение теперь и в debug_backtrace() и прочих функциях, исследующих аргументы.

    Изменения в обработке integer
    1. Некорректные восьмеричные числа будут выдавать ошибку компиляции:
    PHP
    1
    
     $i = 0781; // 8 - неверный разряд для восьмеричного числа
    Ранее все после некорректного разряда отбрасывалось, и в $i была бы 7.
    2. Побитовые сдвиги на отрицательные числа теперь бросают ArithmeticError:
    PHP
    1
    2
    
    var_dump(1 >> -1);
          // ArithmeticError: Bit shift by negative number
    3. Сдвиг влево на число, большее разрядности, вернет 0:
    PHP
    1
    
    var_dump(1 << 64); // int(0)
    Ранее поведение зависело от архитектуры, на x86 и x86-64 результат был == 1, т.к. сдвиг был циклическим.
    4. Аналогично сдвиг вправо даст 0 или -1 (зависит от знака):
    PHP
    1
    2
    
    var_dump(1 >> 64);  // int(0)
          var_dump(-1 >> 64); // int(-1)
    Изменения в обработке ошибок
    1. Больше не парсятся в числа строки с шестнадцатиричными числами:
    PHP
    1
    2
    3
    4
    5
    6
    
    var_dump("0x123" == "291");     // bool(false)     (ранее true)
          var_dump(is_numeric("0x123"));  // bool(false)     (ранее true)
          var_dump("0xe" + "0x1");        // int(0)          (ранее 16)
     
          var_dump(substr("foo", "0x1")); // string(3) "foo" (ранее "oo")
          // Notice: A non well formed numeric value encountered
    filter_var() может использоваться для проверки строки на содержание шестнадцатиричного числа или конвертации в обычное число:
    PHP
    1
    2
    3
    4
    5
    6
    
    $str = "0xffff";
        $int = filter_var($str, FILTER_VALIDATE_INT, FILTER_FLAG_ALLOW_HEX);
        if (false === $int) {
            throw new Exception("Invalid integer!");
        }
        var_dump($int); // int(65535)
    2. Из-за добавления эскейп-синтаксиса для юникода, строки в двойных кавычках и heredoc должны это учитывать:
    PHP
    1
    
    $str = "\u{xyz}"; // Fatal error: Invalid UTF-8 codepoint escape sequence
    Необходимо двойное экранирования слэша:
    PHP
    1
    
    $str = "\\u{xyz}";
    Хотя простое "\u" без последующей { не затронуто, и вот так заработает без изменений:
    PHP
    1
    
    $str = "\u202e";
    Из других изменений документ отмечает теперь отсутствие $this для нестатических методов, вызванных статически (ранее метод использовал $this вызывающего контекста).

    Пополнился, что логично, список недоступных для классов, трейтов и интерфейсов имен — добавлены bool, int, float, string, null, false, true, а также для будущего использования: resource, object, mixed, numeric.

    Конструкт yield не требует больше скобок при использовании в выражениях. Он теперь право-ассоциативный оператор с приоритетом между «print» и "=>". Поэтому поведение может измениться:

    PHP
    1
    2
    3
    4
    5
    
    echo yield -1;
          // ранее интерпретировалось как
          echo (yield) - 1;
          // а сейчас как
          echo yield (-1);
    PHP
    1
    2
    3
    4
    5
    
    yield $foo or die;
          // ранее интерпретировалось как
          yield ($foo or die);
          // а сейчас как
          (yield $foo) or die;
    Эти случаи рекомендуется принудительно уточнять скобками.

    Из заметных изменений в стандартной библиотеке функций отмечу только удаление call_user_method() и call_user_method_array(), остальное не столь значительно (выкинули dl() в php-fpm, переименовали и оптимизировали zend_qsort -> zend_sort, добавили zend_insert_sort, немного поменяли поведение setcookie при пустом имени cookie и убрали фатальную ошибку ob_start внутри буферизации).

    Производительность
    Самой большой причиной для перехода на PHP7 является его производительность, которая своими характеристиками в первую очередь обязана phpng. Увеличение производительности может стать решающим фактором для быстрого перехода на 7ю версию маленькими хостерами, ведь им удастся разместить больше клиентов на том же оборудовании.

    На текущий момент дела обстоят следующим образом: PHP7 находится на одном уровне с HHVM, написанным фейсбуком, который работает в качестве Just In Time (JIT) компилятора, переводящего PHP-код в машинные инструкции.

    PHP7 не имеет JIT-компилятора, хотя было много дискуссий о нем. Непонятно какой прирост производительности даст этот шаг, но уверен, будет интересно посмотреть, если кто-то все же решится его сделать!

    В дополнение к производительности, приятным побочным эффектом оптимизации внутренней структуры данных будет и значительная экономия памяти.


    Более подробный список изменений на английском языке можно найти в указанных источниках:
    http://php.net/
    http://github.com/php/php-src/blob/php-7.0.0alpha1/UPGRADING
    https://secure.php.net/manual/en/migration70.php
    Ссылка на скачивания PHP7
    http://php.net/downloads.php#v7.0.0
    __________
    PHP-Дайджест № 75 – интересные новости, материалы и инструменты (22 ноября – 6 декабря 2015)
22
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
05.12.2015, 15:46
Ответы с готовыми решениями:

Call_user_func_array php7
При переходе на php7 возникла ошибка Function name must be a string $result...

PHP5 -> PHP7
Здраствуйте. Я только начинающий в PHP. У меня есть один сервер, написан на...

Mysql_real_escape_string в PHP7
Всем доброго ) У меня вот такая проблема. Особо что у PHP7 нового не...

Проблемы с PHP7
Здравствуйте. Работаю на Ubuntu и установил LAMP &gt; (тоже самое что и WAMP). Эта...

Php5 -> php7
Здравствуйте. решил перевести свой сайт на php7 но проблема в том, что он на...

19
tymchyshyn
0 / 0 / 0
Регистрация: 03.11.2015
Сообщений: 1
29.12.2015, 15:41 2
класно
0
Игорь и
-24 / 1 / 0
Регистрация: 20.04.2015
Сообщений: 157
25.01.2016, 16:28 3
Azdeman, Добрый день! я хочу спросить можно к вам обратиться за помощью как к знатоку PHP
0
Nuke_DEV
0 / 0 / 2
Регистрация: 03.02.2016
Сообщений: 27
03.02.2016, 01:19 4
я уж испугался, что пхп 6.x пропустили, а это оказывается php 5.7 xD
0
Lazy_Den
2973 / 2638 / 1331
Регистрация: 15.01.2014
Сообщений: 5,790
03.02.2016, 02:46 5
Цитата Сообщение от Nuke_DEV Посмотреть сообщение
а это оказывается php 5.7
Не угадали. Это именно PHP 7, а не 5.7. Кстати, ни версии 5.7, ни тем более версии 6 нет в поддержке и шестёрки, как я понимаю, не будет вообще (No good reasons NOT to skip version 6). А 5.7 планировалась и возможно будет, как переходная версия от линейки 5.x к 7, но и это у меня под вопросом, т.к. в той же документации, я наблюдаю руководство по миграции с версии 5.6 на 7, а не с 5.7.

Добавлено через 9 минут
P.S. Кстати говоря, сам как-то не обращал внимание на фразу в конце страницы по первой ссылке, которуя я дал выше:
Version specific notes
PHP 5.6
As it is the final PHP 5 release ...
"Так как это финальный релиз PHP5 ..."
Говорит сама за себя.
4
полудух
155 / 168 / 46
Регистрация: 15.03.2016
Сообщений: 1,056
03.04.2016, 13:37 6
Цитата Сообщение от Azdeman Посмотреть сообщение
Добавлен новый оператор сравнения <=>, так же известный как «spaceship operator». Конструкция $a <=> $b возвращает -1, 0 или +1 если $a соответственно меньше, равно или больше $b. Удобно использовать в колбэках для usort().
вот этой штуки из перла немного не хватало в пхп
позволяет многомерные массивы сортировать
1
Azdeman
Фрилансер
Эксперт HTML/CSSЭксперт PHP
1738 / 1281 / 579
Регистрация: 12.01.2011
Сообщений: 5,082
03.04.2016, 22:40  [ТС] 7
Цитата Сообщение от полудух Посмотреть сообщение
вот этой штуки из перла немного не хватало в пхп
позволяет многомерные массивы сортировать
Согласен.
0
Raisin Zn
100 / 100 / 51
Регистрация: 19.04.2011
Сообщений: 929
25.04.2016, 15:49 8
Поясните пожалуйста это:
Цитата Сообщение от Azdeman Посмотреть сообщение
Присвоения с пустым списком list() стали запрещены
Это значит, что вот так:
PHP
1
list () = $a;
Делать нельзя - понятно!
А вот пропускать переменную, например так:
PHP
1
list ( , $block) = each($this->blocks);
Можно? Или это тоже ошибка в PHP 7?
0
Azdeman
Фрилансер
Эксперт HTML/CSSЭксперт PHP
1738 / 1281 / 579
Регистрация: 12.01.2011
Сообщений: 5,082
25.04.2016, 16:35  [ТС] 9
Цитата Сообщение от Raisin Zn Посмотреть сообщение
Можно?
можно
PHP
1
2
3
4
5
6
7
8
9
10
$arr = [1,2,3];
list(,$a,$b) = $arr;
echo $a;//2
echo $b;//3
 
list(,,) = $arr;
//Fatal error: Cannot use empty list in
 
list(,,$c) = $arr;
echo $c;//3
1
полудух
155 / 168 / 46
Регистрация: 15.03.2016
Сообщений: 1,056
26.05.2016, 13:36 10
Как Badoo перешли на PHP7 и сэкономили $1M
А теперь — ура! — благая весть для всего PHP-сообщества: PHP7 действительно готов к продакшену, стабилен, потребляет значительно меньше памяти и дает очень хороший прирост производительности.
2
Киберсемантика
7 / 7 / 1
Регистрация: 02.10.2016
Сообщений: 66
Записей в блоге: 1
12.10.2016, 11:15 11
Я прочитал исходный пост...

Я правильно понял что скрипты использующие foreach() и другие переопределенные функции, могут работать на 7-ке неправильно?

То есть совместимость нарушена, или что?
0
Para bellum
Эксперт PHP
4152 / 3087 / 999
Регистрация: 06.01.2011
Сообщений: 9,019
12.10.2016, 11:43 12
Цитата Сообщение от Киберсемантика Посмотреть сообщение
Я правильно понял что скрипты использующие foreach() и другие переопределенные функции, могут работать на 7-ке неправильно?
Скорее не так, как ожидается, если использовать цикл в стиле 5.* версий. Но не все использования циклов несовместимы с PHP 7. Обычный проход по циклу результат тот же выдаёт.
0
Киберсемантика
7 / 7 / 1
Регистрация: 02.10.2016
Сообщений: 66
Записей в блоге: 1
12.10.2016, 12:59 13
Да это понятно что несовместимость не будет полной)) и понятно, что люди изучившие особенности семерки будут писать по-новому. У меня чисто утилитарный вопрос: я намедни сменил сервер, на нем изначально стоит 7 рнр (убунта 16), отсюда вопрос:

- Стоит ли мне сразу заморочиться на установку дополнительной 5.6 (для меня этот процесс - заморочка, ибо я не настолько хорошо знаком с никсами), или все старые скрипты будут нормально работать и на 7-ке?
0
Para bellum
Эксперт PHP
4152 / 3087 / 999
Регистрация: 06.01.2011
Сообщений: 9,019
12.10.2016, 13:06 14
Цитата Сообщение от Киберсемантика Посмотреть сообщение
все старые скрипты будут нормально работать и на 7-ке?
На этот вопрос можете ответить только Вы сами, пощёлкав по страницам сайта и посмотрев на ошибки.
0
Киберсемантика
7 / 7 / 1
Регистрация: 02.10.2016
Сообщений: 66
Записей в блоге: 1
13.10.2016, 11:55 15
Да уже ответил - текущая версия Vanilla forum 2.2.1 на которую у меня упал взгляд - семерку не поддерживает.

Зачем спрашивается делать движок не поддерживающий старые коды - непонятно не устраивает поведение функции - ну напишите новую. Зачем старую переопределять-то?..

Или сделали бы как в винде - режим совместимости. Типа пишешь в конфиге что-то вроде "enable5x = on" - и всё ) не думаю что это прям вот сверхсложно как-то реализовать было..

Ладно,не буду бухтеть, пошел читать доки по убунте))
1
Para bellum
Эксперт PHP
4152 / 3087 / 999
Регистрация: 06.01.2011
Сообщений: 9,019
13.10.2016, 12:28 16
Цитата Сообщение от Киберсемантика Посмотреть сообщение
Зачем спрашивается делать движок не поддерживающий старые коды - непонятно
Ну, вот так. Всё на свете поддерживать не получится. Скажем, тот же, устраивающий Вас PHP5, не совместим с PHP 3, скажем.
Да и что-то сомневаюсь, что у Вас прямо по всему проекту циклы, в которых меняется состояние исходного массива.
Подогнать под PHP7 за неделю целый портал можно.
0
cvb20
3 / 5 / 0
Регистрация: 01.10.2017
Сообщений: 101
11.10.2017, 08:49 17
работа с базой данных более быстрая.
0
Htext
95 / 62 / 16
Регистрация: 08.01.2015
Сообщений: 800
Записей в блоге: 1
16.02.2018, 18:05 18
Цитата Сообщение от Para bellum Посмотреть сообщение
На этот вопрос можете ответить только Вы сами, пощёлкав по страницам сайта и посмотрев на ошибки.
ОООО кошмар. А если у меня скрипты больше специфические скажем так? И что теперь - я должен КАЖДЫЙ скрипт проверять, что ли. И смотреть, что он там выдаст. Делать что ли, реально, больше нечего.
Если так и дальше пойдет - плюну на РНР и перепишу все на С/С++.
Цитата Сообщение от Киберсемантика Посмотреть сообщение
Зачем старую переопределять-то?..
Вот именно.
Цитата Сообщение от Киберсемантика Посмотреть сообщение
Или сделали бы как в винде - режим совместимости. Типа пишешь в конфиге что-то вроде "enable5x = on" - и всё ) не думаю что это прям вот сверхсложно как-то реализовать было..
Так это очевидно, что именно так и нужно было сделать. Но, увы. То ли от РНР хотя избавиться таким образом, то ли уж не знаю, что.

Добавлено через 2 минуты
Цитата Сообщение от Para bellum Посмотреть сообщение
Подогнать под PHP7 за неделю целый портал можно.
Вы некомпетентны, мне видится.
0
Jewbacabra
Эксперт PHP
3504 / 2913 / 1302
Регистрация: 24.04.2014
Сообщений: 8,864
16.02.2018, 21:34 19
Цитата Сообщение от Htext Посмотреть сообщение
И что теперь - я должен КАЖДЫЙ скрипт проверять, что ли. И смотреть, что он там выдаст.
Пократь тестами, не?
Цитата Сообщение от Htext Посмотреть сообщение
Делать что ли, реально, больше нечего.
Кто-то насильно заставляет? Есть такой принцип: работает - не трогай
Цитата Сообщение от Htext Посмотреть сообщение
Так это очевидно, что именно так и нужно было сделать.
Со стороны всегда все очевидно.
0
Htext
95 / 62 / 16
Регистрация: 08.01.2015
Сообщений: 800
Записей в блоге: 1
16.02.2018, 22:30 20
Jewbacabra )))))))
0
16.02.2018, 22:30
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
16.02.2018, 22:30

странности php7?
Привет всем! Заметил странность $n1 = 1000000000; $n2 = 9999999999; $n3...

Docker php7 bcmath
Как настроить dockerfile так чтобы установился этот ext? FROM...

Openssl windows php7
Добрый день! После установки php7 не получается подключить openssl вроде...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
20
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2018, vBulletin Solutions, Inc.
Рейтинг@Mail.ru