First thing that strikes me is that you may want to use the @ operator to suppress error messages which may come from the filesystem functions. Say you try to create a new directory inside a directory which is not writable, a warning will be generated. try something like this:
//The @ operator suppreses the error message generated here.
if (! @unlink($emptyDir)) {
throw new Exception("Can't delete dir!");
}
Second point is think about using exceptions (as above). The PHP implementation of these is a bit more Java-like (although I've not used C++ before, so maybe I can't comment...).
Third point - have a look at the SPL classes which do directory recursion. These are quite new to PHP, but getting to know Iterators now will be of beneit to you in future. More info here:
http://www.php.net/~helly/php/ext/spl/
There's a directory iterator and a recursive directory iterator here: maybe you could use these in your class?
hth
--Robin