���캯������������

���캯��

__construct ([ mixed $args [, $... ]] ) : void

PHP 5 ���п�������һ�����ж���һ��������Ϊ���캯�������й��캯���������ÿ�δ����¶���ʱ�ȵ��ô˷��������Էdz��ʺ���ʹ�ö���֮ǰ��һЩ��ʼ��������

Note: ��������ж����˹��캯���򲻻���ʽ�����丸��Ĺ��캯����Ҫִ�и���Ĺ��캯������Ҫ������Ĺ��캯���е��� parent::__construct()���������û�ж��幹�캯�������ͬһ����ͨ���෽��һ���Ӹ���̳У�����û�б�����Ϊ private �Ļ�����

Example #1 ʹ���±�׼�Ĺ��캯��

<?php
class BaseClass {
   function 
__construct() {
       print 
"In BaseClass constructor\n";
   }
}

class 
SubClass extends BaseClass {
   function 
__construct() {
       
parent::__construct();
       print 
"In SubClass constructor\n";
   }
}

class 
OtherSubClass extends BaseClass {
    
// inherits BaseClass's constructor
}

// In BaseClass constructor
$obj = new BaseClass();

// In BaseClass constructor
// In SubClass constructor
$obj = new SubClass();

// In BaseClass constructor
$obj = new OtherSubClass();
?>

Ϊ��ʵ���������ԣ���� PHP 5 �������Ҳ��� __construct() ��������Ҳû�дӸ���̳�һ���Ļ������ͻ᳢��Ѱ�Ҿ�ʽ�Ĺ��캯����Ҳ���Ǻ���ͬ���ĺ��������Ψһ��������������������ǣ���������һ����Ϊ __construct() �ķ���ȴ������������;ʱ��

������������ͬ���� __construct() ���븸�� __construct() ���в�ͬ�����ķ�������ʱ��PHP �������һ�� E_STRICT ������Ϣ��

�� PHP 5.3.3 ���������ռ��У�������ͬ���ķ���������Ϊ���캯������һ�ı䲻Ӱ�첻�������ռ��е��ࡣ

Example #2 Constructors in namespaced classes

<?php
namespace Foo;
class 
Bar {
    public function 
Bar() {
        
// treated as constructor in PHP 5.3.0-5.3.2
        // treated as regular method as of PHP 5.3.3
    
}
}
?>

��������

__destruct ( void ) : void

PHP 5 ���������������ĸ�������������������������ԣ��� C++�������������ڵ�ij��������������ö���ɾ�����ߵ�������ʽ����ʱִ�С�

Example #3 ��������ʾ��

<?php
class MyDestructableClass {
   function 
__construct() {
       print 
"In constructor\n";
       
$this->name "MyDestructableClass";
   }

   function 
__destruct() {
       print 
"Destroying " $this->name "\n";
   }
}

$obj = new MyDestructableClass();
?>

�͹��캯��һ��������������������ᱻ���氵�е��á�Ҫִ�и���������������������������������������ʽ���� parent::__destruct()������Ҳ�͹��캯��һ������������Լ�û�ж��������������̳и���ġ�

����������ʹ��ʹ�� exit() ��ֹ�ű�����ʱҲ�ᱻ���á������������е��� exit() ������ֹ����رղ��������С�

Note:

���������ڽű��ر�ʱ���ã���ʱ���е� HTTP ͷ��Ϣ�Ѿ��������ű��ر�ʱ�Ĺ���Ŀ¼�п��ܺ��� SAPI���� apache����ʱ��ͬ��

Note:

��ͼ�������������ڽű���ֹʱ�����ã����׳�һ���쳣�ᵼ����������