<?php
function random_sample($massiv, $how_much) {
// array_rand - пример плохого дизайна в "PHP":
// если второй аргумент равен 1, возвращает значение, иначе возвращает массив.
// А ещё обёртка понадобилась, потому что она возвращает ключи.
}
class get_advice {
const ADVICES_VERBS = [
'выключите',
'включите',
'перезагрузите',
'проверьте',
'переустановите',
'запустите',
'закройте',
];
const ADVICES_NOUNS = [
['компьютер'],
['роутер'],
['программу'],
['средство', 'восстановления', 'Windows'],
['браузер'],
['сайт'],
['панель', 'управления'],
['антивирус'],
];
const ADVICES_PREPS = [
['а', 'затем'],
['после', 'чего'],
['и'],
['а', 'если', 'это', 'не', 'сработает,', 'то'],
];
function __toString() {
$verbs = random_sample(self::ADVICES_VERBS, 2);
$nouns = array_map(function($pituh) {return implode(' ', $pituh);}, random_sample
(self::ADVICES_NOUNS, 2)); $prep = random_sample(self::ADVICES_PREPS, 1);
$joiner = $prep[0] !== 'и' ? ', ' : ' ';
return "$verbs[0] $nouns[0]$joiner$prep $verbs[1] $nouns[1].";
}
}
echo new get_advice(), "\n";
PD9waHAKZnVuY3Rpb24gcmFuZG9tX3NhbXBsZSgkbWFzc2l2LCAkaG93X211Y2gpIHsKICAgIC8vIGFycmF5X3JhbmQgLSDQv9GA0LjQvNC10YAg0L/Qu9C+0YXQvtCz0L4g0LTQuNC30LDQudC90LAg0LIgIlBIUCI6CiAgICAvLyDQtdGB0LvQuCDQstGC0L7RgNC+0Lkg0LDRgNCz0YPQvNC10L3RgiDRgNCw0LLQtdC9IDEsINCy0L7Qt9Cy0YDQsNGJ0LDQtdGCINC30L3QsNGH0LXQvdC40LUsINC40L3QsNGH0LUg0LLQvtC30LLRgNCw0YnQsNC10YIg0LzQsNGB0YHQuNCyLgogICAgLy8g0JAg0LXRidGRINC+0LHRkdGA0YLQutCwINC/0L7QvdCw0LTQvtCx0LjQu9Cw0YHRjCwg0L/QvtGC0L7QvNGDINGH0YLQviDQvtC90LAg0LLQvtC30LLRgNCw0YnQsNC10YIg0LrQu9GO0YfQuC4KICAgIHJldHVybiAkaG93X211Y2ggPT09IDEgPyAkbWFzc2l2W2FycmF5X3JhbmQoJG1hc3NpdildIDogYXJyYXlfdmFsdWVzKGFycmF5X2ludGVyc2VjdF9rZXkoJG1hc3NpdiwgYXJyYXlfZmxpcChhcnJheV9yYW5kKCRtYXNzaXYsICRob3dfbXVjaCkpKSk7Cn0KCmNsYXNzIGdldF9hZHZpY2UgewogICAgY29uc3QgQURWSUNFU19WRVJCUyA9IFsKICAgICAgICAn0LLRi9C60LvRjtGH0LjRgtC1JywKICAgICAgICAn0LLQutC70Y7Rh9C40YLQtScsCiAgICAgICAgJ9C/0LXRgNC10LfQsNCz0YDRg9C30LjRgtC1JywKICAgICAgICAn0L/RgNC+0LLQtdGA0YzRgtC1JywKICAgICAgICAn0L/QtdGA0LXRg9GB0YLQsNC90L7QstC40YLQtScsCiAgICAgICAgJ9C30LDQv9GD0YHRgtC40YLQtScsCiAgICAgICAgJ9C30LDQutGA0L7QudGC0LUnLAogICAgXTsKICAgIGNvbnN0IEFEVklDRVNfTk9VTlMgPSBbCiAgICAgICAgWyfQutC+0LzQv9GM0Y7RgtC10YAnXSwKICAgICAgICBbJ9GA0L7Rg9GC0LXRgCddLAogICAgICAgIFsn0L/RgNC+0LPRgNCw0LzQvNGDJ10sCiAgICAgICAgWyfRgdGA0LXQtNGB0YLQstC+JywgJ9Cy0L7RgdGB0YLQsNC90L7QstC70LXQvdC40Y8nLCAnV2luZG93cyddLAogICAgICAgIFsn0LHRgNCw0YPQt9C10YAnXSwKICAgICAgICBbJ9GB0LDQudGCJ10sCiAgICAgICAgWyfQv9Cw0L3QtdC70YwnLCAn0YPQv9GA0LDQstC70LXQvdC40Y8nXSwKICAgICAgICBbJ9Cw0L3RgtC40LLQuNGA0YPRgSddLAogICAgXTsKICAgIGNvbnN0IEFEVklDRVNfUFJFUFMgPSBbCiAgICAgICAgWyfQsCcsICfQt9Cw0YLQtdC8J10sCiAgICAgICAgWyfQv9C+0YHQu9C1JywgJ9GH0LXQs9C+J10sCiAgICAgICAgWyfQuCddLAogICAgICAgIFsn0LAnLCAn0LXRgdC70LgnLCAn0Y3RgtC+JywgJ9C90LUnLCAn0YHRgNCw0LHQvtGC0LDQtdGCLCcsICfRgtC+J10sCiAgICBdOwogICAgZnVuY3Rpb24gX190b1N0cmluZygpIHsKICAgICAgICAkdmVyYnMgPSByYW5kb21fc2FtcGxlKHNlbGY6OkFEVklDRVNfVkVSQlMsIDIpOwogICAgICAgICRub3VucyA9IGFycmF5X21hcChmdW5jdGlvbigkcGl0dWgpIHtyZXR1cm4gaW1wbG9kZSgnICcsICRwaXR1aCk7fSwgcmFuZG9tX3NhbXBsZShzZWxmOjpBRFZJQ0VTX05PVU5TLCAyKSk7CiAgICAgICAgJHByZXAgPSByYW5kb21fc2FtcGxlKHNlbGY6OkFEVklDRVNfUFJFUFMsIDEpOwogICAgICAgICR2ZXJic1swXSA9IG1iX2NvbnZlcnRfY2FzZSgkdmVyYnNbMF0sIE1CX0NBU0VfVElUTEUpOwogICAgICAgICRqb2luZXIgPSAkcHJlcFswXSAhPT0gJ9C4JyA/ICcsICcgOiAnICc7CiAgICAgICAgJHByZXAgPSBpbXBsb2RlKCcgJywgJHByZXApOwoKICAgICAgICByZXR1cm4gIiR2ZXJic1swXSAkbm91bnNbMF0kam9pbmVyJHByZXAgJHZlcmJzWzFdICRub3Vuc1sxXS4iOwogICAgfQp9CgplY2hvIG5ldyBnZXRfYWR2aWNlKCksICJcbiI7Cg==