@NeylonC2

Как передать вариативные константы в стандартную функцию PHP?

Нужно константы
file_put_contents($file, $person, FILE_APPEND | LOCK_EX);

Установить примерно так
function main_file_put_contents($file, $person, ???) {
  file_put_contents($file, $person, ???);
}
  • Вопрос задан
  • 142 просмотра
Решения вопроса 1
FanatPHP
@FanatPHP
Чебуратор тега РНР
Тот случай, когда ребенок хотел покрышку на верёвке, а не парк с аттракционами.

function main_file_put_contents($file, $person, $mode) {
  file_put_contents($file, $person, $mode);
}
Ответ написан
Комментировать
Пригласить эксперта
Ответы на вопрос 3
Значения всех этих констант - разные степени двойки. Побитово складываются, и передаются в виде integer, который потом можно либо обратно разложить на степени двойки, либо проанализировать в двоичном виде для понимания какие именно флаги были переданы.
Ответ написан
nokimaro
@nokimaro
Меня невозможно остановить, если я смогу начать.
function main_file_put_contents($file, $person, $flags = (FILE_APPEND | LOCK_EX)) {
    file_put_contents($file, $person, $flags);
}

//используется значение $flags по умолчанию из сигнатуры функции (FILE_APPEND | LOCK_EX)
main_file_put_contents($file, $person); 

//переопределяем $flags и передаём только FILE_APPEND
main_file_put_contents($file, $person, FILE_APPEND);
Ответ написан
Комментировать
SilenceOfWinter
@SilenceOfWinter Куратор тега PHP
та еще зажигалка...
protected function hasFlag(int $flag): bool
{
    return ($this->flags & $flag) === $flag;
}
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы