Первый вариант- ^ - это с начала строки
Нужно отлавливать только слово. Либо wordone, либо wordtwo либо wordthree. Без скобок и операторов. Это слово может быть только в начале или в середине строки.
А можно ли исходное выражение проверить с помощью РВ?
Условий получается очень много и сложных. Похоже на что то нереальное)
-В начале выражения может быть знак минус, может и не быть
-Любой операнд выражения может быть или переменой или константой
-Скобки могут быть в любом месте выражения.
-В конце/начале выражения не должно быть оператора кроме + или - в начале
-В середине выражения не должно идти подряд несколько операторов
-Скобки должны соответствовать открывающие закрывающим
Или это все нужно отдельно обрабатывать после разбиения на лексемы? Или делать отдельно проверку на соответствие каждому граничному условию?
Самая сложная часть- скобки..
Подсобите с регуляркой. Нужно математическое выражение, например:
аb+4*(-x-222*b)+cbd
разбирать так, чтобы отдельно в лексемы попадали символьные переменные(из одного и больше символов, без цифр), цифровые константы из одной и более цифр и отдельно +, -, * ,(,).
Выражения могут быть на входе абсолютно разные по длине, набору пересчисленных операторов, с разными константами и переменными.
Это вообще возможно? Или тут нужно писать свою функцию?
Есть например post get, с ними мы работаем указывая явно. например в html форме. А в каком контексте понимать put, delete и как это применяется в контексте php? Где и как они явно указываются? Что значит, что post не идемпотентный? Например при отправке методом post мы отправляем данные на сервер. но создавать новую сущность или нет - определяет же логика в процессе обработки данных?
Собственно, вопрос касается и организации структуры в проекте и на сервере.
Что означает общедоступность/публичность папки pulic_html? Кто имеет к ней доступ и на каких правах? Это настраивает пользователь домена или хостер выдает стандартные настройки без возможности правки?
Почему прикладные папки с картинками, js скриптами работают только изнутри папки public_html, а из того же уровня иерархии папок(если эти папки положить на одном уровне с пабликом) - нет?
Имеют ли принципиальное отличие ответы на эти вопросы в контексте локального и реального сервера?
В инструкциях некоторых хостеров написано, что нужно помещать файлы проекта в папку паблик. А как же сами файлы проекта с кодом? Или это зависит от политики настроек сервера, что он разрешает- только исполнение, или и чтение/запись?
Есть у меня простой класс - логер, который при любом исключении/ошибке пишет строчку в лог.файл. Все работает. Читал, что это дело - правильно - использовать стандартизированно.
Почитал документацию на prs/log. Непонятен сам принцип работы с библиотекой. Допустим, я хочу логировать ошибку 404, используя эту библиотеку. Как хотя бы теоретически это реализовать? Где должна быть описана логика - куда эти логи девать в итоге? Разные уровни, я вижу что реализуют разные методы интерфейса LoggerInterface. Нужно отнаследоваться от абстрактного класса логера, сделать свой класс и переопределить в нем методы интерфейса в зависимости от того, что нужно делать в результате ситуации по каждому из уровней?
Как хоть в общих чертах работать с этой библиотекой?
Тут цикл только для того, чтобы создать видимость какой-то работы?
Если нужно посмотреть, сколько времени и памяти потребляется, можно просто вместо этого цикла поместить код, который оценивается?
Или этот цикл для чего то другого?
Ну и про форму записи самого цикла. Первый раз вижу аргумент foreach со слешем. Это я так понимаю. равнозначно предварительной инициализации массива для перебора?:
Имеется в виду, что в первом случае исчисляется время от запуска $timer->start(); до конца скрипта, а во втором случае начало отмеряется от запуска скрипта?
$dbQueryCounter++;//счетчик импортирован в замыкание по ссылке
return PostModel::getList($dateCreated);// не забываем return
};
Cache::wrapper("posts_".$dateCreated,$fallback);
Class Cache
{
static function set($key,$value){
// код записи в кеш
}
static function get($key){
// код чтения из кеша
}
static function wrapper($key, Closure $fallback){
$data=self::get($key);
if(!$data){
$data=$fallback();// отложенное выполнение кода
self::set($key,$data);
}
return$data;
}
}
?>
Но я что-то не особо вижу "улучшения". Вернее, я не понимаю что стало лучше с использованием замыкания. Кроме того, стало больше кода, отсутствует один класс, и непонятно зачем появился счетчик.
Почитаю еще раз доку, и наверное таки отложу до лучших времен...
Встречая в коде различные вариации замыканий я еще понимаю как работает, но сам вряд ли бы где использовал. Проблема в понимании начинается, когда используется передача параметров/замыкания используются чтобы передать их в качестве параметров другой функции.
Может кто подскажет как легче усвоить какой что ли ход мыслей при использовании замыканий..? Когда вот прям без замыканий никак
Документацию, кучу ссылок с примерами(многие из которых просто копирка с документации) в сети читал, пока не полегчало. Почти во всех примерах есть общее пояснение работы, но мало о том почему использовано именно замыкание, почему оно так необходимо в том или ином случае.