Warning: Cannot use a scalar value as an array in /home/admin/public_html/forum/include/fm.class.php on line 757

Warning: Invalid argument supplied for foreach() in /home/admin/public_html/forum/include/fm.class.php on line 770
Форумы портала PHP.SU :: Версия для печати :: fopen в деструкторе
Форумы портала PHP.SU » » Работа с файловой системой и файлами » fopen в деструкторе

Страниц (1): [1]
 

1. Саныч - 08 Декабря, 2011 - 17:47:36 - перейти к сообщению
Ребят, может и глупый конечно вопрос, но столкнулся с такой штукой, что функция fopen выдает ошибку уровня E_WARNING, когда ее вызываю из деструктора класса. В чем прикол?

Пример:
PHP:
скопировать код в буфер обмена
  1. class BlaBla {
  2. function __construct() {
  3. //...
  4. }
  5. function __destruct() {
  6.    $treeFile = fopen('tree.txt', 'w'); // получаю ошибку!
  7. }
  8. function reTree() {
  9.    $treeFile = fopen('tree.txt', 'w'); //а вот тут работает все четко
  10. }
  11. }
2. Мелкий - 08 Декабря, 2011 - 18:02:49 - перейти к сообщению
Какую ошибку-то?
3. Саныч - 08 Декабря, 2011 - 18:07:26 - перейти к сообщению
Мелкий, ошибка банальная. Не найден файл или директория
4. Мелкий - 08 Декабря, 2011 - 18:16:53 - перейти к сообщению
php 5.3.3
PHP:
скопировать код в буфер обмена
  1. class foo {
  2. public function __destruct() {
  3. $fp = fopen('file.test','w');
  4. fwrite($fp,mt_rand(1,1000));
  5. fclose($fp);
  6. }
  7. }
  8. $bar = new foo;


Файлик успешно создался...
5. Саныч - 08 Декабря, 2011 - 18:25:39 - перейти к сообщению
Блин чудеса... PHP 5.3.8
Скопировал твой код один в один, запускаю - ошибка. Копирую его в другой метод - все ок!
В деструкторе же проблема решилась вот так:
Относительный путь хоть убей, но не понимает. А вот с др. методов работает и с относительными путями...
В чем прикол? Я так понимаю настройки тут ни при чем...
6. EuGen - 08 Декабря, 2011 - 20:11:53 - перейти к сообщению
https://bugs.php.net/bug.php?id=29167

?

 

Powered by ExBB FM 1.0 RC1