Что произойдет, если вы вызовите конструктор из деструктора?

Вызов функции __construct () из __destruct (),

<?php public function __construct() { echo "Hi"; } public function __destruct() { $this->__construct(); } ?> 

будет ли он создавать бесконечный цикл?

Нет, но это будет:

 class Test { public function __construct() { echo "Hi"; } public function __destruct() { new Test(); } } new Test(); 

Пример: http://ideone.com/94XUg

Нет, не будет. __construct – это просто регулярная функция, вызываемая непосредственно вместо использования new ClassName;