Jump to content
  • 0

Деструкторы PHP


romantik2011
 Share

Question

Прочитал про деструкторы, возникли пару вопросов.

1)Для того чтоб новосозданный объект удалился с оперативной памяти не достатоно лишь прописать деструктор в классе, ещё отдельно нужно прописать название объекта в функции unset?

2)Если деструктор освобождает память, решил сделать бесконечный цикл, который бы выводил результат вызова автоматически созданного объекта.

Вот написал код.


<?php
class User{
public $name;
public $login;
public $password;

function __construct($name,$login,$password){
echo "Имя: $name <br>";
echo "Логин: $login ";
echo "<br> Пароль: $password <br><br>";
}

function __destruct(){
}

}

class SuperUser extends User{
public $role = "Ялта<br><br>";
}

$object = new SuperUser("Super Admin","root","pass@word1");
echo $object->role;

for(;{ $obj1 = new User("Пушкин","Pisatel","111");
unset($obj1);
}


?>

Цикл работает, но ничего не выводит, а я хотел чтоб выводил, удалил созданный объект, снова вывел и так бесконечно.

Link to comment
Share on other sites

3 answers to this question

Recommended Posts

  • 0

А почему такой код, вызывает ещё в придачу деструктора? Ведь деструктор вызывается только в том случаи когда удалился объект функцией unset() ?


<?php
class A{
public $f = 5;
function __destruct(){
echo " УРА !";
}
}

$obj = new A();
echo $obj->f;
?>

Link to comment
Share on other sites

  • 0

Ты присваиваешь не объекту, а переменной. Соответсвенно, когда ты переопределяешь переменную, объект удаляется, так как на него больше никто не ссылается => вызывается деструктор.

Link to comment
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.
Note: Your post will require moderator approval before it will be visible.

Guest
Answer this question...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

 Share

×
×
  • Create New...

Important Information

We have placed cookies on your device to help make this website better. You can adjust your cookie settings, otherwise we'll assume you're okay to continue. See more about our Guidelines and Privacy Policy