Не видно переменную в class
<?php
class logs
{
var $path;
public function addPath($path)
{
$this->path = $path;
echo($this->path);
}
public function newLog($text)
{
$localDate = date('d:m:Y', time());
$localTime = date('H:i:s', time());
echo($this->path . ' non');
$filePath = $this->path . '/' . $localDate . '.log';
$defaultText = "[$localTime] => $text";
$file = fopen($filePath, 'a+');
fwrite($file, $defaultText);
fclose($file);
}
}
?>
и происходит что-то странное. В 1 function переденную path видно.
А во 2 function ее не видно. Ее кобу-то не сушествует.
Возможно это конечно тз за того что я в нее передаю $_SERVER['DOCUMENT_ROOT] . '/groups/'.$groupId.'/logs'; И тип пути нельзя но я не знаю.
require $_SERVER['DOCUMENT_ROOT'] . '/libs/logs.php';
(new logs)->addPath($_SERVER['DOCUMENT_ROOT']. "/groups/$groupId/logs');
Сервер вернул неправильный ответ: /storage/ssd2/169/12967169/public_html/groups/191062515/logs non<br /> <b>Warning</b>: fopen(/20:03:2020.log): failed to open stream: Permission denied in <b>/storage/ssd2/169/12967169/public_html/libs/logs.php</b> on line <b>23</b><br /> <br /> <b>Warning</b>: fwrite() expects parameter 1 to be resource, boolean given in <b>/storage/ssd2/169/12967169/public_html/libs/logs.php</b> on line <b>24</b><br /> <br /> <b>Warning</b>: fclose() expects parameter 1 to be resource, boolean given in <b>/storage/ssd2/169/12967169/public_html/libs/logs.php</b> on line <b>25</b><br /> fc975d32
Ответы (1 шт):
Автор решения: Слава Носков
→ Ссылка
Проблему решил сам.
Проблема была в том что я каждый раз обряшался к class как к новому классу.
(new class)->function из за чего у меня в новом классе нет так называемой переменной.
Вот ее и нет.
Проблему решил просто:
$logs = new logs;
$logs->addPath();
$logs->newLog();