Vikhrmodels/habr_qa_sbs huggingface dataset:
Вопрос: Регулярное выражение для проверки правильности серии советского и российского паспорта одновременно?

Лучший ответ:
Относительно советского паспорта:
otvety.google.ru/otvety/thread?tid=7c171e25e79fc216

Серия советского паспорта образца 1974 г. состоит из римских цифр (с I до XXXIII) и двух заглавных букв. Цифры отражают последовательность выдачи паспортов. Буквы — это код региона. У каждого региона свой код. В Москве, например, это — МЮ и СБ, в Краснодарском крае — АГ и ТМ, в Кировской области — ИР и т. д. Это не значит, что у москвичей не может быть кировских паспортов и наоборот (надо учитывать фактор миграции), но если вдруг в московских подписных листах пойдут сплошь кировские или краснодарские серии, это должно насторожить контролера.

Все номера паспортов СССР находятся в диапазоне цифр 500 000-750 000. Если Вам попался паспорт с иными номерами — это либо описка, либо откровенная липа. Строчка выбраковывается в любом случае, а подписные листы данного сборщика подлежат пристрастной проверке.

Худший ответ:
Регулярка может быть такая:
(?:[IVX]{2}|[0-9]{2})[0-9]{2}[\s\-](?:[А-Я]{2}|[0-9]{3}\s*[0-9]{3})
Либо такая:
(?:[IVX]{2}[0-9]{2}\-[А-Я]{2}|[0-9]{4}\s*[0-9]{3}\s*[0-9]{3})

Писал на коленке, нужно проверять =)
Вопрос: Восстановление после rm -rf /*

Лучший ответ:
Увы, никак

Худший ответ:
А что за ОСь и ФС?
Вопрос: Какой СМС биллинг выбрать?

Лучший ответ:
Можно использовать www.robokassa.ru/ru/, интегрировать не сложно.

Худший ответ:
Конкретно по вопросу ничего не скажу, не сталкивался. 
Но вот на некоторых страницах(Мануал, остальные не проверял) Есть проблемы с кодировкой:)
Вопрос: Можно ли написать игру через ASP.net mvc c AJAX?

Лучший ответ:
Если вы хотите C# на сервере и интерактивный клиент, то лучше для этого использовать SignalR

Худший ответ:
Можно ccылка
Вопрос: Учить ли js одновременно с java?

Лучший ответ:
> Насколько похожи языки?
Совсем разные инструменты, для разных задач.
JS на фронт-енде.
Java вообще под Android в основном, а на бек-енде применяется только в крупном Enterprise.
Вывод: хотите веб и в формате Indie - значит JS вам нужен.
Хотите веб в формате Enterprise (это особое направление в крупных, но не софтверных фирмах - внутреннее ПО) - значит JS + Java под Web.
Хотите Android - значит Java под Android.
Про несочетаемость разных инструментов и, о ужас, путаницу в синтаксисе - такой бред, что и обсуждать не хочется. Все равно что говорить, что молоток нельзя использовать параллельно с отверткой, потому что у него, о ужас, рукоятка другой формы.
Говорю как разработчик на двух-трех десятках языков.
Если у вас или еще кого есть желание подискутировать конструктивно - добро пожаловать в комменты.

Худший ответ:
В одном из ответов на тостере прочёл, что не стоит забивать голову одновременно двумя языками, этого сейчас и придерживаюсь :)
Вопрос: Как настроить окружение для веб-разработки?

Лучший ответ:
для точного воспроизведения окружения, если оно нужно - как вы и написали: докер или вагрант, что вам проще/удобнее.
обновление - если у вас обновление состоит только в обновлении файлов, то сгодится и гит. но часто кроме обновления файлов требуется еще вспомогательная работа (оптимизация изображений, компиляция css/js, минификация/объединение css/js, запуск миграций и т.п.). поэтому обычно для этого используют инструменты или сервисы деплоя.

Худший ответ:
Для точного воспроизведения серверного окружения используется Docker.
Заливать чем вам удобно, зависит от многих параметров. Git может быть как вариант.
Вопрос: Подготовка к сертификации magento

Лучший ответ:
А есть у вас профиль на фрилансе?

Худший ответ:
Ответы на сертификации magento можно найти на сайте itexams.ru в разделе magento
Вопрос: Разница между облаком и VPS?

Лучший ответ:
VPS это VPS, конкретная виртуальная машина. Она избавляет вас от необходимости покупать конкретное железо и настраивать драйвера, так как может быть поднята в виде виртуальной запущенной машине как на старом железе, так и на новом, без переустановки драйверов и прочего хлама.
Облако это облако. Под облаком обычно подразумевается кластеризация машин таким образом, что ресурсы распределяются между ними и легко мигрируют с конкретной машины на другую машины прозрачно для пользователя. Избавляет от необходимости перемещать виртуальные машины на другой сервер вручную, упрощает расширение и добавление ресурсов, которые в кластере машин грубо говоря бесконечны, ибо добавляться могут на лету, без перезапуска "хоста" - "хостом" в облаке является кластер из машин, а не один конкретный хост-сервер.
SaaS это SaaS. Когда виртуализируется не ОС, а конкретный сервер, конкретное приложение. Избавляет вас от необходимости задумываться об операционной системе.
То есть каждая из вышеупомянутых технологий, может существовать как отдельно друг от друга, так и представлять собой более высокий уровень абстрации, избавляя от рутины.

Худший ответ:
SaaS - это SaaS. Это gmail, например. 
VPS/VDS - это виртуалки. Под облаками подразумевают очень разные вещи, но если говорить про "VPS в облаке" - то чаще всего это кластер из пачки железок с единой панелью управления. Большинство "облачных" хостеров не запаривается ни с общим стораджем, ни с автоматическим подъемом виртуалок после падения одной из железок, ни с биллингом по ресурсам "эластичным". В общем, на выходе получаются обычные виртуалки в эксплуатации, с той лишь разницей, что их можно запускать-выключать-удалять пачками.
Вопрос: Как найти последний нулевой элемент в массиве?

Лучший ответ:
Надо искать с конца. (После последнего нулевого может вообще не быть элементов.)for (i=30;i!=0;i--)
Если в массиве 30 элементов, тоfor (i = 29; i >= 0; i--)
Нулевой индекс рассматриваем потому, что все элементы массива могут быть ненулевыми.

Худший ответ:
сред. ариф-кое всех положительных элементов массива после последнего нулевого массива
У Вас двумерный массив что ли?
Вопрос: Объявление переменной в PHP

Лучший ответ:
var не существует в природе, это из пхп4, в пятом его нет. Следует всегда использовать $foo = 'bar';

Худший ответ:
В том, что первый вариант — Parse error?
PHP5.3, по крайней мере.
Вопрос: Быстрый разворот копий веб-серверов — это реально?

Лучший ответ:
Абсолютно реально и так многие делают. У меня в свое время такой "все-могун" скрипт под 1 мб весил :) (8 ролей, всякая вирутализация, и прочее и прочее - сложнейшая система из 12 серверов разворачивалась запуском скрипта)

Худший ответ:
deb-пакет соберите и ставьте его.
Вопрос: Как заставить apache игнорировать регистр букв в url

Лучший ответ:
Вот так.
Вкратце: надо установить mod_spelling, а затем включить его параметром «CheckSpelling on» (в конфиге апача глобально или в .htaccess локально).

Худший ответ:
Это не к апачу, а к файловой системе. В *nix имена файлов регистрозависимы в отличии от винды.
Вопрос: Как грамотнее реализовать автоматическую смену пароля?

Лучший ответ:
Попробуйте несколько вариантов:Создаем в БД в таблице users столбец "password_expire". При регистрации ставим туда текущую дату+90 дней (либо сколько Вам нужно). Также добавляем столбец "blocked" и ставим всем там значение false. Пишем скрипт, который вытягивает из бд всех юзеров, у которых password_expire равен текущему дню, и ставит им в blocked значение true. Делаем cron этого скрипта, чтобы он запускался раз в сутки. После дополняем скрипт авторизации, чтобы при входе он проверял значение blocked. Если оно true, то кидаем на страницу, где сообщаем о необходимости сменить пароль, и требуем новый пароль. После успешной смены ставим в blocked значение false и в password_expire текущую дату + 90 дней;Добавляем столбец password_expire в users, где ставим сегодня + 90 дней. Опять пишем обработчик. Если в password_expire текущая дата, то шлем пользователю письмо со ссылкой на страницу смены пароля;Все те же самые password_expire и blocked, но более гуманно: просто в начале страницы вешаем блок с уведомлением о смене пароля и не убираем до тех пор, пока пароль не будет сменен и, соответственно, blocked не станет false.

Худший ответ:
Все очень плохо. Данная система совершенно не безопасна. Пользователь должен просто получать требование сменить пароль сразу после входа в систему со старым паролем. То, что у вас сейчас есть - профанация.
Вопрос: Skype: в поиске нет моего ID. В чем проблема?

Лучший ответ:
Женя, есть вы в результате поиска, Рудный, Казахстан
может не там ищите (по чату например вместо контактов)

Худший ответ:
Да есть вы поиске
Вопрос: Какой ноутбук выбрать для разработки android?

Лучший ответ:
0) Купите девайс, а лучше несколько на которых будете тестировать(они окупят себя).
1) Чисто эмуляторы используются сейчас крайне редко, смотрите в сторону Genymotion.
2) Ноутбук нормальный, в поездках пользуюсь ещё более слабым и всё ок.
P.S. Опять же зависит от серьёзности работы. Если написать 1 приложение, то этого достаточно. Если это ваша работа, то зависит от вашего бюджета и запросов(можете хоть за 200 килорублей купить)

Худший ответ:
главное ssd  поставь хороший, а оператвиы, процессора хватит
Вопрос: Сколько человек может работать одновременно на Windows server 2012?

Лучший ответ:
1. если мы говорим о RDP - то без лицензий 2. С лицензиями - сколько купите лицензий и на сколько хватит ресурсов.
2. вновь - если RDP, то каждому отдельного. Иначе второй выкинет первого.
3. Да, могут. 
4. нет. Почитайте про расчет необходимых ресурсов для терминального сервера.

Худший ответ:
1. Два в админской консоли, остальные по количеству RDS CAL.
2. Могут под одним, это настраивается в групповых политиках, но не все программы будут работать корректно. Например 1С пишет в домашний каталог пользователя и ругается при повторном запуске.
3. См 2.
4. Вряд ли все пользователи дадут разом пиковую нагрузку на процессор или диск, а вот память съесть могут легко. Мы при расчёте терминалки исключительно для 1С закладывали 200-250Mb оперативки на пользователя. Плюс 2Gb для системы и 2Gb для общих служб. Запустите типичный сеанс одного пользователя и посмотрите в диспетчере задач, сколько ресурсов он потребляет.
Вопрос: На каком framework лучше будет сделать доску объявлений?

Лучший ответ:
Yii 2 пока ещё только в статусе RC, лично у меня доверия не вызывает.
Я бы выбрал Symfony как один из самых развитых и имеющий широчайшую поддержку у php-сообщества.
Посещаемость дело вторичное, к выбору фреймворка имеет отдалённое отношение.

Худший ответ:
Зенд очень громоздкий и большой. Симфони не меньше. У обоих порог вхождения высоковат. Yii 2 самое то.
Вопрос: Как правильно писать юнит-тест для класса работающего с файлом?

Лучший ответ:
Нужно отделить логику чтения файла от логики его обработки — мало ли откуда данные могут придти — из БД, по сети, в качестве параметра метода.
Т.е. обработчик должен на входе принимать строку (а ещё лучше какой-нибудь поток байт/символов для последовательного чтения).
В этом случае юнит-тестирование сведётся к тестированию только логики процессинга, а, следовательно, данные могут быть просто зашиты в файл теста.
Если нужно тестирование ещё и чтения файла — отдельный юнит тест (но т.к. скорее всего вы используете какой-нибудь стандартный API вам это не потребуется).

Худший ответ:
> + ко всему меня еще смущает работа с файлами тем что это похоже на «интеграционный» тип тестирования, а этим не должен заниматься юнит-тест.

Юнит-тесту никто не запрещает прочитать файл в память до тестирования и отдавать тестируемому коду уже набор байт из памяти или что он там принимает на вход. Если ваш код требует на вход объект StreamPtr_t (какое странное название), то сделайте специально для тестов простейший MemoryStreamReader на 20 строчек. 

Если боитесь, что файл может прочитаться неправильно (хотя вряд ли такое возможно) и сломать вам тест, сделайте подсчет какой-нибудь контрольной суммы.

А специально превращать файлы в портянки вроде "\xff" смахивает на извращение.
Вопрос: Как защитить изображения от PrintScreen?

Лучший ответ:
Все что ты видишь в браузере  уже лежит у тебя на компе остается только это достать ! Достаешь из js 2 картинки и соединяешь их в фотошопе. или  Делаешь расширение оно у тебя из js забирает переменные с 2 снимками и делает из них одну картинку =). 
А так делай привью (маленькое изображение плохого качества  и выкладывай его ) как это сднлано на платных фотостоках .
Как вариант попробуй сделать так при нажатии клавиши принскрин закрывай картинку черным дивом на 1 с или меньше мб поможет . А то лишний раз нагружать клиент это не круто .
P.s решений этого много но человек знающий веб все равно получит эту картинку если он ее видит . Есть сайт с шрифтами там шрифты стоят от 1$ до $150 мб больше . Их можно вытащить через F12  бесплатно =). Это так для примера !
------------------------------------------------------
Вот смотрю люди предлагают разные решения но как сказали это ворота по среди поля =) . Знающий человек все ровно достанет это да запрети ему все он достанет ее из оперативы =) . Если данные попали на комп то их уже не защитить ! 
Ставьте условия на прин скрин  и при нажатие добавляйте к картинке дисплей ноне ! или Делайте привью .
О стольные решения приведут к нагрузке на машину пользователя   и усложнению юзабилити сайта .
Появилась еще идея при нажатии f12 бить ссылку на картинку =) как варик  если кто то захочет отключить js в браузере прямо у вас на сайте =)

Худший ответ:
JS перехватывает события нажатия клавиш, clipboard доступен в новейших браузерах. Теоретически, наверное возможно перехватить PtrScr и сделать подделку.
Вопрос: Какой стороне принадлежит доменное имя?

Лучший ответ:
Доменное имя не принадлежит ни той, ни другой стороне.
Одной из сторон принадлежит право использования доменного имени в течение ограниченного срока, которое периодически нужно подтверждать очередным взносом.
Говоря просто - кто оплачивает и имеет реквизиты от личного кабинета, того и тапки.
Ни один здравомыслящий фрилансер или веб-студия не будет оформлять домен на себя, если у них нет цели потом шантажировать компанию.

Худший ответ:
Доменное имя принадлежит его координационному центру (регистратору), который получает его от IANA. Центр делегирует права принимать заявки на регистрацию неким конторам - nic.ru, reg.ru и т.д., которые это делают и за деньги предоставляют право пользования доменом на определенный срок определенному лицу - физику или юрику, кто заключил договор. Право пользования доменом принадлежит тому, кто заплатил за него. Если сайт делался фрилансером или сторонней конторой - она никаким боком не влияет на права того, кто за домен заплатил и никаких прав на доменное имя не имеет.
Вопрос: Какой ЯП выбрать для Windows?

Лучший ответ:
Да, в общем C# наверное будет лучшим вариантом. Язык не особо сложный по сравнению с С++ (который тоже можете рассмотреть), прекрасная MSDN на русском, да и книг тоже полно.
Но это я думаю вы уже и так поняли. Вот что гораздо важнее: программисту хорошо бы знать английский язык на уровне хотя бы "понимаю со словарем". Например ради StackOverflow, GitHub и прочих прелестей.

Худший ответ:
Почему бы не поменять ОС? Посмотри в сторону Java.
Вопрос: Microsoft хранит пароли в открытом виде?

Лучший ответ:
Да, можно!
 Взять хеш от первых 16 символов, потом от остатка в винде очень похоже делается

Худший ответ:
А зачем такое вообще может понадобиться технически?
Вопрос: Сервер для Ruby?

Лучший ответ:
apache + passenger
nginx + passenger
nginx + unicorn (мне это больше всего нравится — github.com/blog/517-unicorn)
nginx + thin
и еще куча вариантов.

Худший ответ:
Не скажу за чистый Дебиан, но на Убунте вообще ничего собирать не надо, если использовать RVM, все ставится из пакетов. Вот, например, неплохая статья на тему (только там еще и unicorn работает совместно с nginx, можно поступить проще и использовать только nginx +passenger).
Вопрос: Php5-fpm и nginx — ни в какую не хочет работать?

Лучший ответ:
Может, вам попробовать так?
server {
 listen 192.168.56.100:80;

server_name .flat.ubuntu;

root /home/homm/www/project_dev/www;

location / {
 include fastcgi_params;

 fastcgi_pass 127.0.0.1:9030;
 fastcgi_param SCRIPT_FILENAME $document_root/test.php;
 }
}

Или, если не поможет, попробовать добавить эту строчку в fastcgi_params:
fastcgi_param PATH_TRANSLATED $document_root$fastcgi_script_name;

Худший ответ:
зачем вообще в / fastcgi?
выносите отдельным локейшеном.

location ~ .php$ {
 fastcgi_split_path_info ^(.+\.php)(.*)$;
 fastcgi_pass backend;
 fastcgi_index index.php;
 fastcgi_param SCRIPT_FILENAME /var/www$fastcgi_script_name;
 include fastcgi_params;
 fastcgi_param QUERY_STRING $query_string;
 fastcgi_param REQUEST_METHOD $request_method;
 fastcgi_param CONTENT_TYPE $content_type;
 fastcgi_param CONTENT_LENGTH $content_length;
 fastcgi_intercept_errors on;
 fastcgi_ignore_client_abort off;
 fastcgi_connect_timeout 60;
 fastcgi_send_timeout 180;
 fastcgi_read_timeout 180;
 fastcgi_buffer_size 128k;
 fastcgi_buffers 4 256k;
 fastcgi_busy_buffers_size 256k;
 fastcgi_temp_file_write_size 256k;
 }
Вопрос: Ultra-дешевый нетбук?

Лучший ответ:
Посмотрите объявления на авито. По мне так это самый преемлимый результат. Главное не напороться на «repair» ноуты.

Худший ответ:
За такую цену из нового можно только Android нетбуки найти на VIA WM8650. Даже Asus Eee PC 2G Surf и то дороже будет.
Но если брать б/у, то вариантов становится больше, даже эти же Asus Eee PC можно найти за такую цену.
Вопрос: Yii 2 Html::a() options — защита от быдлокода?

Лучший ответ:
вы видимо используете ссылку внутри колонки грида, а в настройках колонки по умолчанию тип html, который с помощью HtmlPurifier чистит ссылки от барахла. Для использования ссылки as is надо поставить тип raw.

Худший ответ:
Я бы предпочел использовать атрибут data-confirmHtml::a('Удалить', ['tasksmanager/task-delete', 'task_id' => $task->id], ['data-confirm' => 'Удалить?']);
Правда не уверен, что в гриде прокатит.
Вопрос: Как заменить все www шрифты в Firefox 29 через userContent.css на предпочитаемые ?

Лучший ответ:
Дизайнеры Вас проклинают )

Худший ответ:
Часть шрифтов, навроде "PT Sans", как я понял - скачиваемые. И описанным в вопросе способом не убиваются.
gfx.downloadable_fonts.enabled=false запрещает скачивать шрифты, что частично решает вопрос. Но не полностью.
Вопрос: Как узнать id категории находясь в ней вне цикла?

Лучший ответ:
WordPress:global $post;
$categories = get_the_category();
foreach($categories as $category) {
      echo $category->cat_ID;
}WooCommerce:global $product; //Если не объявлен ранее. Не уверен в необходимости.
global $post;
$categories = get_the_terms( $post->ID, 'product_cat' );
foreach ($categories as $category) {
    echo $category->term_id; //Может быть в нескольких категориях
}

Худший ответ:
Буквально на днях искал. В шаблоне taxonomy-product_cat.php получаю таким путем.$category = get_queried_object()->term_id
Вопрос: Простая программа меняющая ip под мак?

Лучший ответ:
Tunnelbear - 500мб трафика на месяц. Для спотифая как раз подойдёт.

Худший ответ:
Можно найти проксю или есть куча ВПН с бесплатным тестовым периодом.
Вопрос: Как правильно подключать javascript и дополнительные стили к wordpress?

Лучший ответ:
https://codex.wordpress.org/%D0%A1%D0%BF%D1%80%D0%...
c пояснениями - wp-panda.com/wp-enqueue-script

Худший ответ:
CSS: прописать в файле функций вашего шаблона wp_enqueue_style( 'FILENAME', get_template_directory_uri() . '/css/FILENAME.css' );
JS: прописать в файле функций вашего шаблона wp_enqueue_script( 'FILENAME ', get_template_directory_uri() . '/js/FILENAME.js', array( 'jquery' ) 
FILENAME замени на свои имена файлов.
Вопрос: Почему при наличии 5 захабренных переводов у меня не появляется значка переводчика?

Лучший ответ:
Потому что более 5, а не больше или равно 5?

Худший ответ:
6 штук надо, проверено
Вопрос: C# Paralllel.ForEach in Parallel.ForEach. Имеет ли смысл?

Лучший ответ:
Мне кажется, что в данном случае вы упретесь в чтение с диска

Худший ответ:
Была задача, решил делать похожим методом. В итоге при использовании такой структуры без создания второго потока для внутренней Parallel.ForEach было замечено падение производительности при выполнении куска кода. В итоге для моей задачи было решено использовать только один Parallel.ForEach.
Вопрос: Существует ли обширная книга по js?

Лучший ответ:
Эй, не забываете про MDN! https://developer.mozilla.org/ru/

Худший ответ:
Добрый день, ну если хотите обширный источник почему бы не rutracker.org/forum/viewtopic.php?t=4762703 самая вроде как популярная книга, да и в ней много чего интересного, попробуйте её почитать, а на счёт функций что конкретно не понимаете? просто функции это вроде как блок програмного кода для повторного вызова при помощи имени , что бы 150 раз не переписывать, если это не то о чём я подумал, поподробнее можно?
Вопрос: Каковы причины частой парковки головок на ноутбуке?

Лучший ответ:
Это особенность всех современных ноутбучных винтов. Смиритесь уже. Лучше он будет парковать головки, чем делать царапины при ударах.
Если  напрягает - поставить ssd.

Худший ответ:
с помощьюMHDD можно отключить АРМ
Вопрос: Как в панели закладок установить отображение значков без текста?

Лучший ответ:
В контекстном меню закладки - выбрать "Изменить" -  и удалить текст в поле "Имя:"

Худший ответ:

Как всё теперь стало удобно!....
Вопрос: Как задать высоту блока в процентах, в адаптивной верстке?

Лучший ответ:
Нужно задать padding-bottom: [x-значение от ширины] %; и все будет работаь.
jsfiddle.net/Lxthaef6/1 - пример исправленный.

Худший ответ:
вертикальные параметры в %  зависят от ширина родителя.
Вопрос: Стоит-ли html/css+javascript и phonegap, если задача быстрый старт?

Лучший ответ:
Писали мы чат на sencha touch. Не дошел до релиза. Ужасные лаги, особенно списков, особенно на андроиде.
Теперь только натив.

Худший ответ:
попыток было много, не выстреливает.
не стреляет ни чаты, ни поиск секс партнеров поблизости, ни куча других подобных идей.
phonegap для чата не стоит ─ будет лагать, даже если бы идея была более перспективна, таким меседжером люди пользоваться не станут.
Вопрос: Как сделать увеличивающийся круг на CSS или jQuery?

Лучший ответ:
Вот фиддл jsfiddle.net/iiil/qfv9x
Только он без префиксов, думаю, что сами допишите.

Худший ответ:
Это от браузера зависит? у меня все норм, вот фиддл: jsfiddle.net/7Nv6y
Вопрос: Как настроить supervisor?

Лучший ответ:
Мой лайтовый конфиг.
Мне удобно, что stderr и stdout лежат в /var/log/supervisor/* в соответствующих файлах.
Все по полочкам из коробки, с минимальной конфигурацией.miraage@xoxo:~$ ls -la /etc/supervisor/conf.d/
total 12
drwxr-xr-x 2 root root 4096 Jul 24 10:46 .
drwxr-xr-x 3 root root 4096 Jul 23 10:58 ..
-rw-r--r-- 1 root root   90 Jul 24 10:30 superproject.confmiraage@xoxo:~$ cat /etc/supervisor/conf.d/superproject.conf 
[program:superproject]
command=php /home/miraage/Projects/superproject/cli.php gearman worker

Худший ответ:
Конфигурационный файл можно положить в /etc/supervisor/conf.d.
А подробнее хорошо расписано в этой инструкции:
https://www.digitalocean.com/community/tutorials/h...
Вопрос: Как найти помощников или единомышленников для проекта?

Лучший ответ:
давай я тебе расскажу сказку. с печальным концом. жили были братья. и решили они построить дворец невиданной красы. строили год. один брат женился и жена ворчала что он денег домой не приносит. и пришлось ему уйти с проекта. второй брат запил, ибо денег то он не получал за работу. и продуктивность его упала до плинтуса. а третий брат продолжил вкалывать за идею. но тут в края эти приехал царь. нанял гастробайтеров и юристов, и выгнав последнего брата с этого района начал строится сам. история со 100% летальным исходом проекта.

Худший ответ:
если не можете работать с друзьями то просто наймите людей
Вопрос: PHP 7.0 — гвоздь в гроб строгого типизирования данных?

Лучший ответ:
В ошибке сказано, что это void и он ничего не должен возвращать.

Худший ответ:
Интересно, а так не сработает случаем?function qwerty():void {
  if ( $q != '123' ) return qwerty();
}
Ну т.е. у qwerty тип же void :) Сделать служебную void():void