@Kirill-Gorelov
С ума с IT

Функции на php?

Всем привет.
При этюдным программированием. Столкнулся с такой проблемой.
Сделал простую функцию записи в файл.
function writtetwoLog(){ 
$entry_line = "$dtime - Сайт все еще не доступен \n";
$fp = fopen("logs.txt", "a");
fputs($fp, $entry_line);
fclose($fp);
}

Переменная $dtime содержит в себе время. Но оно не работает, если скрипт, который определяет время находятся за пределом функции, записи в файл. И по этому ничего не отображается.
Это как нибудь решается, кроме того, что бы скрипт времени вписывать в функцию записи в файл??
  • Вопрос задан
  • 150 просмотров
Пригласить эксперта
Ответы на вопрос 2
YardalGedal
@YardalGedal
yeah boy
function writtetwoLog($dtime){ 
    $entry_line = "$dtime - Сайт все еще не доступен \n";
    $fp = fopen("logs.txt", "a");
    fputs($fp, $entry_line);
    fclose($fp);
}

writtetwoLog($dtime);


либо такой вариант(но крайне не рекомендую)

// $dtime = ...
function writtetwoLog(){ 
    global $dtime; 
    $entry_line = "$dtime - Сайт все еще не доступен \n";
    $fp = fopen("logs.txt", "a");
    fputs($fp, $entry_line);
    fclose($fp);
}
Ответ написан
Fesor
@Fesor
Full-stack developer (Symfony, Angular)
1) все переменные должны быть переданы внутрь функции явно. Избегайте использования глобальных переменных.

2) если $dtime нужен именно функции логирования (является частью формата логов), и это текущее время (обычно нам надо запоминать когда мы записали в лог), то мы можем просто получать текущее время внутри функции.

3) если $dtime это не текущее время а просто какая-то переменная - добавьтее ее в сообщение и передайте внутрь:

function log($message) {
   // ...
}

log("$dtime - Сайт все еще не доступен");
Ответ написан
Комментировать
Ваш ответ на вопрос

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

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