Задать вопрос
  • Как сделать Экспорт всех настроек PHPStorm?

    DevMan
    @DevMan
    скопировать профиль.
    https://www.jetbrains.com/help/phpstorm/project-an...
    Ответ написан
    Комментировать
  • Почему не работает код JS?

    alexey-m-ukolov
    @alexey-m-ukolov Куратор тега JavaScript
    Что сделал не так?
    Не подключил jquery? Не посмотрел ошибки в консоли? Не сделал интерактивный пример, который мы могли бы посмотреть?
    Ответ написан
    2 комментария
  • Какая служит для обновления GIT?

    ArXen42
    @ArXen42
    git это все таки не браузер вроде хрома, сам себя обновлять не будет)

    Под linux этим обычно занимается пакетный менеджер, под виндой скорее просто нужно запустить инсталлятор новой версии.
    Ответ написан
    Комментировать
  • Как написать регулярное выражение?

    pashted
    @pashted
    тыжпрограммист
    console.log("0000-1111-2222-3333".match(/^[0-9]{4}-[0-9]{4}-[0-9]{4}-[0-9]{4}$/));
    Ответ написан
    Комментировать
  • Как написать регулярное выражение?

    longclaps
    @longclaps
    /^(\d{4}-){3}\d{4}$/
    Ответ написан
    Комментировать
  • Как вывести данные из Localstorage в консоль?

    sergiks
    @sergiks Куратор тега JavaScript
    ♬♬
    • localStorage.length – число хранящихся ключей
    • localStorage.key(i) – i-й ключ
    • localStorage.getItem(key) – значение по ключу


    На странице того домена, где устанавливались значения, в консоли:
    for(let key,i=0;i<localStorage.length;i++) key=localStorage.key(i),console.log(key,':', localStorage.getItem(key));


    Если хотите распарсить JSON и выводить только имена:
    const L=localStorage;for(let k,v,i=0;i<L.length;i++) {k=L.key(i);try{v=JSON.parse(L.getItem(k)).name}catch(e){};console.log(k,' => ',v)}
    Ответ написан
    Комментировать
  • Почему не работает код?

    lxsmkv
    @lxsmkv
    Test automation engineer
    интерфейс не может имплементировать интерфейс а только расширять (extends)
    Ответ написан
    Комментировать
  • Как с помощью foreach создать строку?

    DevMan
    @DevMan
    Почему такое решение неправильно?
    потому что оно не создает строку, а просто выводит на экран по одному символу.

    Разве можно так сделать чтобы echo было за циклом?
    $arr = [1, 2, 3, 4, 5, 6, 7, 8, 9];
    $str = '';
    foreach ($arr as $i) {
    	$str .= $i;
    }
    echo $str;
    Ответ написан
    Комментировать
  • Почему не работает return?

    @ig0r88
    Нужно передавать аргумент по ссылке:

    function my_func (&$a){
        $a += 10;
    }
    
    $a = 10;
    
    my_func($a);
    echo $a;
    Ответ написан
    Комментировать
  • Почему не работает return?

    qonand
    @qonand
    Software Engineer
    Почему не работает return? На экран будет выведено 10, а не 20(как задумано.

    потому что Вы и не выводите результат функции, Вы выводите значение переменной $a, а результат выполнения можно вывести например так:
    echo my_func($a);

    И еще: можно ли решить эту задачу без использования return внутри функции?

    можно если использовать указатели, но на Вашем примере смысла в этом мало
    Ответ написан
    Комментировать
  • Как сделать такой комментарий в phpstorm?

    Decadal
    @Decadal
    введите следующее:

    /**

    и клавишу Enter

    перед функцией будет сгенерирована документация для функции по ее сигнатуре
    для переменной - документация к переменной с ее типом
    не сможет определить, для чего комментарий - сгенерит структуру вида
    /**
    *
    */
    Ответ написан
    Комментировать
  • Почему не работает условие в калькуляторе?

    devspec
    @devspec
    Помогло? Отметь решением
    elseif ($operator == '/'){
    elseif ($operator == '*'){
    сегодня прям день проблем с условиями у людей
    Ответ написан
    1 комментарий
  • Почему не работает условие?

    Rsa97
    @Rsa97
    Для правильного вопроса надо знать половину ответа
    Потому что вы в каждом case сравниваете $day с результатом вычисления формулы.
    Ваша запись эквивалентна следующей:
    if ($day == ($day == 1 && $day <= 5)) { }
    elseif ($day == ($day === 6 && $day === 7)) {}
    elseif ($day == ($day == 0 && $day > 7)) {}

    Это уже не говоря о кривости самих условий.
    ($day == 1 && $day <= 5) выполняется только если $day == 1.
    ($day === 6 && $day === 7) не выполняется никогда.
    ($day == 0 && $day > 7) также не выполняется никогда.
    Если хотите использовать именно switch, то так:
    switch ($day) {
      case 1:
      case 2:
      case 3:
      case 4:
      case 5:
        echo ... ;
        break;
      case 6:
      case 7:
        echo ... ;
        break;
      default:
        echo ... ;
        break;
    }
    Ответ написан
    Комментировать
  • Почему не работает такой код js?

    @Cr2ed
    Разберем по порядку
    function ask1(){
    var a = prompt("Ввести еще одного пользователя?", "");
      if (a!=null){
            ask();}
            else (test());
        }


    Тут лучше использовать confirm. Также тут не правильно используется else. Будет выглядеть так:
    function ask1(){
          if (confirm("Ввести еще одного пользователя?")) {
            ask();
          } else {
            test()
          }
    }


    Вторая ошибка в объявлении метода test
    function test(persons) {
            res = persons.join("<br/>");
            document.write("<p>" + res);
    }


    Вы почему то на вход принимаете массив, но не передаете его в месте вызова. И этот параметр можно опустить.
    Метод say. Вы на вход ожидаете параметр person, нов месте вызова его не передаете.
    Так же у вас одна и таже ссылка на person. Т.е. не вводишь нового а меняешь старого и добавляешь его еще раз в массив.

    Весь код будет выглядеть так:
    var persons = [];
    
        function ask() {
          var person = {}
          
          person.name = prompt("Введите свое имя:");
          person.sname = prompt("Введите свою фамилию:");
          person.age = prompt("Введите свой возраст:");
          
          persons.push(person);
          
          ask1();
        }
        function ask1(){
          if (confirm("Ввести еще одного пользователя?")) {
            ask();
          } else {
            test()
          }
        }
    
        function test() {
            persons.forEach(person =>  { say(person); document.write("<p></p>");})
        }
    
        function say(person) {
          document.write("Имя: " + person.name + "<br/>");
          document.write("Фамилия: " + person.sname + "<br/>");
          document.write("Возраст: " + person.age + "<br/>");
          document.write("");
        }
        ask();
    Ответ написан
    1 комментарий
  • Почему group by (mysql) не срабатывает?

    @mletov
    В выборке должны быть либо поля, находящиеся в GROUP BY, либо агрегирующие функции (SUM, AVG, COUNT и пр)
    Ну уж никак не *
    Ответ написан
    Комментировать
  • Почему не работает php код в html?

    AlexanderShapoval
    @AlexanderShapoval
    PHP maker
    4f469eeedb974458adce2ce5147b43f1.png

    в настройках добавь тип файла
    Ответ написан
    Комментировать
  • Как у брать аутентификацию прокси в phpstorm?

    xez
    @xez
    TL Junior Roo
    Комментировать
  • Почему не происходит сложение массива?

    devellopah
    @devellopah
    Evgenij_nechujveter:

    твой код можно представить немного по-другому для понимания сути

    var a = [2,1];
    var b = [9,5];
    var mergeArray = function() {
    	var a, b, array; // изначально undefined
    	// поскольку в вызове функции ты не передал значения, чтобы присвоить их переменным a и b, они так и остаются undefined
    	// здесь ты пытаешься вызвать метод .concat() у undefined, должна вылетать ошибка по этому поводу
    	// ты ожидаешь что a и b будут взяты из глобального пространства, но этого не произойдёт, поскольку здесь внутри функции (то есть в локальном пространстве) ты объявил переменные c точно такими же идентификаторами, поэтому они "перетерут" глобальных "тёзок".
    	array = a.concat(b); // undefined.concat(undefined);
    };
    
    mergeArray();


    нечистая функция (императивный подход)
    либо не объявляешь локальные a и b (убираешь a, b из объявления функции) и работаешь напрямую с глобальными a и b

    чистая функция (функциональный подход)
    либо оставляешь как есть и просто вызываешь функцию с двумя аргументами (чтобы присвоить локальным a и b соответствующие массивы в качестве значений и ошибок не будет, поскольку у массивов есть метод .concat() "на вооружении")
    Ответ написан
    Комментировать
  • Как работает этот массив?

    @tabbols95
    Недопрограммист
    Очевидно, что в [14] строке на нулевое место массива array мы ставим из нулевой строки и 7 столбца элемент, а этот элемент равен 8.
    array[array.length-i-1]
    означает, что в массиве 8 элементов, но т.к. массив начинается с нулевого элемента, то по правилам номер последней ячейки равен на 1 меньше, т.е. 7, поэтому
    array[array.length-1].
    array[array.length-i]
    объясняется тем, что мы постепенно проходим все ячейки по порядку, начиная с последней.
    Ответ написан
    1 комментарий