Warning: fwrite() expects parameter 1 to be resource, null given
Primary tabs
При запуске кода записи строк в журнал выходит предупреждение:
Warning: fwrite() expects parameter 1 to be resource, null given ...
Warning: fclose() expects parameter 1 to be resource, null given ...
При этом файл не заполняется. Как исправить?
Код программы:
<html> <head> <meta http-equiv="content-type" content="text/html; charset=utf-8" /> <title> ООП </title> </head> <body> <?php require_once 'oop3FileLogger.php'; $jor = new FileLogger("Комплексные числа", 'C:/OpenServer/domains/testsite/OOP/complex.txt'); $jor->log("строка строка строка"); ?> </body> </html>
Описание класса:
<?php class FileLogger { //Здесь описаны свойства/поля класса public $f; //Открытый файл public $name; // Имя журнала public $lines = []; //Накапливаемые сроки //Дальше описаны методы класса // Запись строк в файл-журнал public function __consruct($name, $fname) { $this->name = $name; //пользователь указывает имя журнала $this->f = fopen($fname, "a+"); //пользователь указывает имя файла, который открывает конструктор для записи } public function log($str) //добавляет строку в массив lines, который накапливает в буфере все строки до закрытия программы { $this->lines[] = $str; // сохраняем строку в массив } public function __destruct() //Добавляет накопленные в буфере строки в файл, закрывает файл. { fwrite($this->f, join("", $this->lines)); fclose($this->f); } }
- Log in to post comments
- 3351 reads
vedro-compota
Mon, 05/22/2017 - 12:40
Permalink
имя конструктора
а именно:
-- опечатка в имени конструктора, он просто не вызывается и потому в log() используется в качестве дескриптора null ,правильно:
_____________
матфак вгу и остальная классика =)