When should the __destruct() method in PHP classes be used and what are some potential pitfalls associated with its usage?

The __destruct() method in PHP classes should be used to perform cleanup tasks or release resources when an object is no longer needed. Some potential pitfalls associated with its usage include not being guaranteed to be called in all circumstances, leading to resource leaks if not properly handled.

class MyClass {
    public function __construct() {
        echo 'Object created';
    }

    public function __destruct() {
        echo 'Object destroyed';
    }
}

$obj = new MyClass();
unset($obj); // Object destroyed