�N���X

�@�N���X�Ƃ́A��ʂɊ֐��̏W���̂Ƃ��Ē�`����Ă��܂����A�֐��Ɣ�׃f�[�^�̈����Ƃ����_�Ō���ׂĂ݂�Ƃ��̈Ⴂ�����킩��₷���Ȃ�܂��B�֐��͗^����ꂽ���͒l�i�����j�����ɂ��ď������ʂ�߂�l�Ƃ��ďo�͂��邾���̂����݂ł����A�N���X�܂��̓I�u�W�F�N�g�́A�������g�̂Ȃ��Ƀf�[�^���i�[����ϐ��Ƃ��Ă̖������͂����Ă��܂��B���̌��ʁA�֐��ł̃f�[�^�̈����́A�f�[�^���������u�ʉ߁v���Ă��������Ȃ̂ɂ������āA�N���X�A�I�u�W�F�N�g�ł͂���ɏ����O�A������̃f�[�^������ŕێ����Ă������Ƃ��”\�ɂȂ�܂��B�v���O���}�͕K�v�ɉ������̒l�����o���čēx���p���邱�Ƃ��ł���悤�ɂȂ�킯�ł��B

�f�[�^��ێ� �f�[�^������
�ϐ� �� �~
�֐� �~ ��
�N���X�A�I�u�W�F�N�g �� ��
TOP

�I�u�W�F�N�g

�@�N���X�𗝉����邤���ŏd�v�ɂȂ��Ă���̂��I�u�W�F�N�g�ł��B�N���X�ƃI�u�W�F�N�g�͎��Ĕ�Ȃ���̂ł��B�I�u�W�F�N�g�Ƃ̓N���X�����ɂ��Â���ꂽ�R�s�[���w���܂��B�N���X�ł́u�f�[�^��ێ��ł���v�Ƃ��������������Ă��邽�߁A�����̏����łЂƂ‚̃N���X�ɃA�N�Z�X�����ꍇ�A�f�[�^�̏㏑���i�s�����j�������N�����댯������܂��B���̂��߁A�����ɉ����N���X�̃R�s�[���쐬���A���̃R�s�[�ɑ΂��ăA�N�Z�X���邱�Ƃ��l��������܂����B���ۂɎg���ꍇ�ɂ́A�܂��N���X�{�̂ɂ͎���������A�I�u�W�F�N�g�ƌĂ΂��N���X�̃R�s�[���쐬������������̑ΏۂƂ��ăv���O������g��ł����܂��B

TOP

�C���X�^���X��

�@�N���X�̃R�s�[�i�I�u�W�F�N�g�j�𐶐����邱�Ƃ��u�C���X�^���X���v�Ƃ����܂��B�C���X�^���X���Ƃ́A�N���X���������߂́u������p�̗̈�v���m�ۂ���s�ׂƂ������܂��BPHP�ł́A�N���X�̃C���X�^���X�������̂悤��new���Z�q���g���čs�Ȃ��܂��B�܂��A�C���X�^���X���̍ۂɁA�K�v�ɉ����ď������̂��߂̃f�[�^�������n�����Ƃ��”\�ł��B

$�ϐ��� = new �N���X��([����,...]);

�@�������K�v�Ȃ��ꍇ�ł��J�b�R�͏ȗ��ł��Ȃ��_�ɒ��ӂ��Ă��������B�C���X�^���X�������I�u�W�F�N�g�́u$�ϐ����v�Ɋi�[����A�ȍ~�͂��̕ϐ����I�u�W�F�N�g�Ƃ��Ĉ������ƂɂȂ�܂��B�܂��A�C���X�^���X�������ϐ����u�I�u�W�F�N�g�ϐ��v�ƌď̂��܂��B���̏ꍇ�A�I�u�W�F�N�g�ϐ��̂Ȃ��̃N���X�ɑ�����֐��ƕϐ��̂��Ƃ��u�����o�֐��v�Ɓu�����o�ϐ��v�A�܂��́u���\�b�h�v�Ɓu�v���p�e�B�v�ƌĂт܂��B
�E�����̓K���A�߂�l�̎擾
[�߂�l] = $�ϐ��� -> ���\�b�h��([����,...]);

�E�l�̎Q�ƁA���
$�ϐ��� -> �v���p�e�B�� [ = �l];
TOP

�R���X�g���N�^�A�f�X�g���N�^

�@�C���X�^���X���̍ۂɎ��s�������ʂȃ��\�b�h�i�����o�֐��j�̂��Ƃ��A�R���X�g���N�^�ƌĂт܂��BPHP�S�ł́A�N���X���Ɠ����̃��\�b�h���R���X�g���N�^�ƌ��Ȃ��Ă��܂������APHP�T����́A�u__construct�v�Ƃ������ꖼ���̗p���Ă��܂��B�����A�N���X�Ɠ������O�̃��\�b�h���N���X�i�I�u�W�F�N�g�j���ɑ��݂���ꍇ�ɂ́u__construct�v���D�悵�ď�������܂��B�R���X�g���N�^�́A�C���X�^���X���̃^�C�~���O�Ŏ��s�����Ƃ���������A�v���p�e�B�i�����o�ϐ��j�̏�������A�N���X�Ŏg�p����e�탊�\�[�X�̏������Ƃ������Ăяo����čŏ��̈�񂾂�������K�v�Ƃ�����̂��L�q����̂���ʓI�ł��B���ɏ������������K�v�Ȃ��ꍇ�́A�R���X�g���N�^�͏ȗ��”\�ł��B

�@�R���X�g���N�^�Ƃ͔��΂ɁA�I�u�W�F�N�g�i�C���X�^���X�j���j�������^�C�~���O�Ŏ��s�����̂��f�X�g���N�^�ł��B�f�X�g���N�^��PHP�T�ȍ~�ł̂ݗ��p�”\�ŁA���ꖼ�Ƃ��āu__destruct�v���̗p���Ă��܂��B�f�X�g���N�^�ɂ́A�N���X���Ŏg�p�������\�[�X��j������Ȃǎ�ɏI���������L�q����̂���ʓI�ł��BPHP�ł́AJava�Ɠ������������̉���Ȃǂ͎����ł�����x�����Ȃ��Ă����̂Ŏg�p�p�x�Ƃ��Ă̓R���X�g���N�^��葽���݂͂����܂���B

TOP

�A�N�Z�X�C���q

�@�N���X�𗝉����邤���ł�����d�v�ȊT�O�ƂȂ�̂��u�A�N�Z�X�C���q�v�ł��B�A�N�Z�X�C���q�Ƃ́A�N���X���̃����o�ϐ��i�v���p�e�B�j�⃁���o�֐��i���\�b�h�j�ɑ΂���A�N�Z�X�̉”ۂ����߂邽�߂̖��߂ɂȂ�܂��B

�EPHP�T�ŗ��p�”\�ȃA�N�Z�X�C���q

�A�N�Z�X�C���q �T�v
public �ǂ�����ł��A�N�Z�X�”\�i�f�t�H���g�j
protected ���݂̃N���X�ƃT�u�N���X�ł̂݃A�N�Z�X�”\
private ���݂̃N���X�����ł̂݃A�N�Z�X�”\

�@�A�N�Z�X�C���q���ȗ������ꍇ�A���̃��\�b�h�ƃv���p�e�B��public�����ƌ��Ȃ���A�f�t�H���g�łǂ�����ł��A�N�Z�X�”\�ɂȂ�܂��B�܂��APHP�S�ł̓v���p�e�B���`���邽�߂�var���߂�����܂������A�������public�C���q�Ɠ��l�̈Ӗ��ł���ƌ��Ȃ���܂��B�����A�C���q�Ƃ��Ă̖����́A�N���X�����̋@�\���N���X�O������B�����邱�Ƃ��ړI�Ŏg���܂��B���������@�\���I�u�W�F�N�g�w���ł́u�J�v�Z�����v�ƌ����܂��B TOP

�Q�b�^���\�b�h�A�Z�b�^���\�b�h

�N���X����private�ϐ��ɃA�N�Z�X���邽�߂̃��\�b�h�̂��Ƃ��u�A�N�Z�T���\�b�h�iAccesor Method�j�v�Ƒ��̂��܂��B�܂��A�uget_�v���\�b�h�Ɓuset_�v���\�b�h�����ꂼ��u�Q�b�^���\�b�h�iGetter Method�j�v�A�u�Z�b�^���\�b�h�iSetter Method�j�v�ƌĂԂ��Ƃ�����܂��B

public function get_�v���p�e�B��(){
    return $this -> �v���p�e�B��;
}

public function set_�v���p�e�B��(){
    $this -> �v���p�e�B�� = ����;
}
�@�u$this�v�́A���݂̃N���X���������߂̖��߂ŁA�N���X���̃����o�ɃA�N�Z�X���邽�߂ɂ́A����$this����čs���K�v������܂��B�A�N�Z�T���\�b�h�̖��O�́A��ʓI�Ɂuget_�v���p�e�B���v�A�uset_�v���p�e�B���v�Ƃ���̂�����ł����\���K���ł͂Ȃ��̂ŕK���������̋K���ɏ]���K�v�͂���܂���Bget_���\�b�h����`���ꂽ�ꍇ�ɂ̓v���p�e�B�͓ǂݎ���p��set_���\�b�h����`���ꂽ�ꍇ�ɂ̓v���p�e�B�͏������ݐ�p�ɂȂ�܂��B�v���p�e�B���B�����āA�A�N�Z�T���\�b�h����ĎQ�ƁA�ݒ肷�邱�ƂŁA
�Ȃǂ̃����b�g������܂��B TOP

�ÓI���\�b�h

�@�N���X�𗘗p����ɂ������ẮA�K���u�C���X�^���X���v���s���A�N���X�̃R�s�[�𐶐�����K�v������ƏЉ�܂������A��O�I�Ɂu�C���X�^���X���v���s��Ȃ��Ă����p�ł��郁�\�b�h������܂��B���̂悤�ȃ��\�b�h�̂��Ƃ��u�ÓI���\�b�h�v�ƌ����܂��B�ÓI���\�b�h���`����ɂ́A���\�b�h��`�̐擪��static�C���q��t�����邾���ł��B

�EMyClass.class.php
<?php
    class MyClass{
        public static function triangle ($width, $height){
            return $width * $height / 2;
        }
    }
?>
�@�N���X�O������ÓI���\�b�h���Ăяo���ɂ́A��ʓI�ȃ��\�b�h�A�v���p�e�B���Ăяo���u->�v���Z�q�ł͂Ȃ��A�u::�v���Z�q���g�p���܂��B
�Estatic.php
<?php
    require_once('MyClass.class.php');
    print('�O�p�`�̖ʐς�' . MyClass::triangle(10,5) . '�ł�<br>');
?>
�@�u::�v���Z�q�𗘗p���邱�ƂŃI�u�W�F�N�g�ϐ����łȂ��N���X�����璼�ړI�Ƀ��\�b�h���Ăяo�����Ƃ��”\�ƂȂ�܂��B�ł͂Ȃ����̂悤�ɁA�C���X�^���X����K�v�Ƃ��郁�\�b�h�Ƃ����łȂ����\�b�h�����݂���̂��Ƃ����ƁA����́A�O������^����ꂽ�l���������o�͂��邾���Ƃ������Ƃ��������Ă��邩��ł��B�N���X���Ńv���p�e�B�Ƃ��ăf�[�^�𗯂߂邱�ƂȂ����\�b�h�Ƃ��Ă����������Ăяo�����ɕԂ������̂�����֐��I�ȏ��������߂��Ă���̂ł킴�킴�I�u�W�F�N�g���‚���Ȃ��Ƃ��A�f�[�^�̏㏑���i�s�����j���������Ȃ����߂ł��B���������A�ÓI���\�b�h�ł́A�N���X���Ƀv���p�e�B�i�f�[�^�j��ݒ���Ƃ��Q�Ƃ��悤�ɂ��v���p�e�B���̂����݂��Ȃ��̂łł��܂���B$this���߂����R�Ȃ���g���܂���B TOP

�N���X���萔

�@�N���X���萔�Ƃ́A���̖��̒ʂ�class�u���b�N�̒��Œ�`���ꂽ�萔�̂��Ƃł��BPHP�T�����const���߂𗘗p���邱�ƂŃN���X�����Œ萔���`���邱�Ƃ��ł��܂��B

<?php
    class MyClass {
        const AUTHOR = '������';
    }
    print('���Җ��F' . MyClass::AUTHOR);
?>
�@�N���X���萔���Q�Ƃ���ɂ͐ÓI���\�b�h���l�A�u::�v���Z�q���g���܂��B�N���X���萔�𗘗p����ƁA����̃N���X�ł������p���Ȃ��萔���N���X�����ŊǗ��ł��A�N���X�O���ɏo���Ȃ��čςނ̂ł�蕪����₷���R�[�h���L�q���邱�Ƃ��ł��܂��B TOP

�p��

�@�p���Ƃ́A�N���X�Ɋ܂܂��v���p�e�B�⃁�\�b�h�����������Ȃ���V���ȋ@�\��lj�������A���̋@�\���ꕔ�����C�����邱�Ƃ��ł���@�\�̂��Ƃł��B�K�v�ɉ������ɂȂ�N���X�̋@�\�������p���‚‹@�\�lj��A�ύX�Ȃǂ̐V�����N���X���‚���ꍇ�Ɏg���܂��B�p���̍ہA��ɂȂ�N���X�̂��Ƃ��u�X�[�p�[�N���X�i�e�N���X�A���N���X�j�v�ƌĂсA�p���̌��ʂł����N���X�̂��Ƃ��u�T�u�N���X�i�q�N���X�A�h���N���X�j�v�ƌĂт܂��B

<?php
    class �T�u�N���X�� extends �X�[�p�[�N���X�� {
        �T�u�N���X�̏�����`
    }
?>
�@�p���ɂ��X�[�p�[�N���X�̋@�\���T�u�N���X�ŏ㏑�����邱�Ƃ��u�I�[�o�[���C�h�v�ƌ����܂��B�I�[�o�[���C�h����Ȃ������X�[�p�[�N���X�̃��\�b�h�̓T�u�N���X�ł����̂܂܈����p����A���������������g�Œ�`�������\�b�h�ł��邩�̂悤�ɗ��p�ł��܂��B
<?php
    class MyClass {
        protected $data;
        public function __construct($data) {
            $this->data = $data;
        }
        public function showData() {
            return '���͒l�́u'.$this->data.'�v�ł��B';
        }
    }
    class MySubClass extends MyClass {
       public function showData(){
           return '***���͒l�́u'.$this->data.'�v�ł��B***';
       }
    }
    
    $obj=new MySubClass ('PEAR');
    print($obj->showData());
?>

[�o��]
***���͒l�́uPEAR�v�ł��B***
TOP

parent����

�@�������I�[�o�[���C�h����ɂ��A�X�[�p�[�N���X�̋@�\�����S�ɓh��ւ���̂ł͂Ȃ��A�X�[�p�[�N���X�̋@�\���󂯌p���Ȃ���T�u�N���X���ŋ@�\��lj��������Ƃ����ꍇ������܂��B���̂悤�ȏꍇ�ɂ�parent���߂ŃX�[�p�[�N���X�̃��\�b�h���Ăяo�����Ƃ��”\�ł��Bparent���߂𗘗p����ƃT�u�N���X�ŃX�[�p�[�N���X�̃��\�b�h�������������ς������Ǝv�����ꍇ�ł�������ŏ����珑�������K�v�͂Ȃ��Ȃ�܂��B�X�[�p�[�N���X�̃��\�b�h�̖߂�l�𗘗p���‚•K�v�ȕ����������C������Ƃ������Ƃ��”\�ɂȂ�܂��B

<?php
    class MyClass {
        protected $data;
        public function __construct($data){
            $this->data=$data;
        }
        public function showData(){
            return '���͒l�́u'.$this->data.'�v�ł��B';
        }
    }
    class MySubClass extends MyClass {
        public function showData(){
            return '***'.parent::showData().'***';
        }
    }
    $obj=new MySubClass('PERA');
    print($obj->showData());
?>
TOP

final�C���q

�@final�C���q�͓���̃��\�b�h���I�[�o�[���C�h�ł��Ȃ��悤�ɐ������邽�߂̏C���q�ł��B�p�������邱�Ƃ�z�肵�Ă��Ȃ����\�b�h�ɂ‚��Ă�final�C���q���‚��邱�Ƃŕs�p�ӂɃI�[�o�[���C�h����邱�Ƃ�h�����Ƃ��ł��܂��B

<?php
    class MyClass {
        protected $data;
        public function __construct($data){
            $this->data=$data;
        }
        public final function showData(){
            return '���͒l�́u'.$this->data.'�v�ł��B';
        }
    }
    class MySubClass extends MyClass{
        public function showData(){
            return '***���͒l�́u'.$this->data.'�v�ł��B***';
        }
    }
?>

[�o��]
Fatal error: Cannot override final methot MyClass::showData() in filan.php
TOP

�|�����[�t�B�Y��

�@�|�����[�t�B�Y���Ƃ͓����̃��\�b�h�ňقȂ鋓�����������邱�Ƃ������܂��B�|�����[�t�B�Y���̃��\�b�h�́A�����ړI�̋@�\�ɓ����̃��\�b�h�����蓖�Ă邱�Ƃ��ł���Ƃ������Ƃł��B����͈�A�̊֘A����N���X�𗘗p����ꍇ�ɁA�قȂ郁�\�b�h�����o���Ȃ��Ă������߁A���p�҂ɂƂ��ė��֐��������܂��B�����ɂ́A�P�Ȃ�p���ƃI�[�o�[���C�h�����ł͂��ꂼ��̃T�u�N���X�������̃��\�b�h�����‚��Ƃ��K�������ۏ؂ł��Ȃ����߁A���ۃ��\�b�h�Ƃ����T�O��PHP�̏ꍇ���p���܂��B

�Epolymorphism.php
<?php
class Figure {
     protected $width;
     protected $height;
     public function __construct($width, $height){
        $this->width=$width;
        $this->height=$height;
    }
    protected function getArea(){}
}
class Triangle extends Figure {
    public final function getArea(){
        return $this->width * $this->height / 2;
    }
}
class Square extends Figure {
    public final function getArea(){
        return $this->width * $this->height;
    }
}
$tri = new Triangle(10, 5);
$sqr = new Square(10, 5);
print('�O�p�`�̖ʐς�'.$tri->getArea().'�ł��B<br>');
print('�l�p�`�̖ʐς�'.$sqr->getArea().'�ł��B<br>');
?>

[�o��]
�O�p�`�̖ʐς�25�ł��B
�l�p�`�̖ʐς�50�ł��B
TOP

���ۃ��\�b�h

�@���ۃ��\�b�h�Ƃ́A���\�b�h��`�̐擪��abstract�C���q��t���������\�b�h�ł���A���ۃ��\�b�h���͓̂�����`���Ȃ���̃��\�b�h�ł��B���ۃ��\�b�h�́A�T�u�N���X�ŕK���I�[�o�[���C�h���Ȃ���΂����܂���B�N���X���̒��ۃ��\�b�h���T�u�N���X�ŕK���I�[�o�[���C�h����Ă��Ȃ���΂��̃N���X�̓C���X�^���X���ł��܂���B����ɂ��A�����̃��\�b�h���T�u�N���X�ōĒ�`����邱�Ƃ�ۏ؂��܂��B���ۃ��\�b�h�̒�`�ł́A���g����ł����Ă� { } �̂悤�ȃu���b�N���`���܂���B
�@�܂��A���ۃ��\�b�h���܂ރN���X�̂��Ƃ𒊏ۃN���X�Ƃ����Aclass�L�[���[�h�̑O��abstract�C���q��t������K�v������܂��B���ۃN���X�̃T�u�N���X�����ۃ��\�b�h�����ׂăI�[�o�[���C�h���Ă��Ȃ��ꍇ�A�G���[���o�܂��B

�Eabstract.php
<?php
abstract class Figure {
    protected $width;
    protected $height;
    
    public function __construct($width, $height){
        $this->width = $width;
        $this->height = $height;
    }
    protected abstract function getArea();
}
class Triangle extends Figure {
    public final function getArea() {
        return $this->width * $this->height / 2;
    }
}
class Square extends Figure {
    public final function getArea() {
        return $this->width * $this->height;
    }
}
$tri = new Triangle(10, 5);
$sqr = new Square(10, 5);
print('�O�p�`�̖ʐς�'.$tri->getArea().'�ł��B<br>');
print('�l�p�`�̖ʐς�'.$sqr->getArea().'�ł��B<br>');
?>
TOP

�C���^�[�t�F�C�X

�@���ۃN���X�ɂ��|�����[�t�B�Y���̎����ɂ͖�������܂��B����́APHP�ł͑��d�p���A�‚܂�A�T�u�N���X�������ɕ����̃X�[�p�[�N���X���p���ł��Ȃ��Ƃ����_�ł��B���̐�����P��p���Ƃ����܂��B���d�p�����ł��Ȃ��Ƃ������Ƃ̓|�����[�t�B�Y�����������������ׂĂ̋@�\�i���\�b�h�j���ЂƂ‚̒��ۃN���X�Ɋ܂߂Ȃ���΂����Ȃ����Ƃ��Ӗ����܂��B����͕K�������T�u�N���X���X�[�p�[�N���X�̋@�\��K�v�Ƃ��Ȃ��ꍇ�ł��A�@�\���I�[�o�[���C�h���Ȃ���΂Ȃ�Ȃ��Ȃ�A���R�A�R�[�h�͏璷�ɂȂ�܂��B�R�[�h���璷�ɂȂ�Ƃ������Ƃ̓T�u�N���X�̖�����������ɂ������������‚��邱�Ƃɂ‚Ȃ���܂��B�����ŁAPHP�ł́A�C���^�[�t�F�C�X�𗘗p���܂��B�C���^�[�t�F�C�X�Ƃ͔z���̃��\�b�h�����ׂĒ��ۃ��\�b�h�ł�����ʂȃN���X�������܂��B�C���^�[�t�F�C�X���`����ꍇ�ɂ́Aclass�L�[���[�h�̑����interfece�L�[���[�h���g�p���܂��B�܂��A�z���̃��\�b�h�����ۃ��\�b�h�ł��邱�Ƃ�interfece�L�[���[�h���疾�炩�Ȃ̂ŌX�̃��\�b�h�ɂ�abstract�C���q�͕K�v����܂���B
�@�C���^�[�t�F�C�X�ƃN���X�Ƃ̌���I�ȈႢ�͂����鑽�d�p�����”\�ɂȂ�Ƃ������Ƃł��B�C���^�[�t�F�C�X���̗p���邱�Ƃɂ��A�T�u�N���X���ł͕K�v�ȃ��\�b�h���܂ރC���^�[�t�F�C�X��I�����p�����邱�Ƃ��”\�ƂȂ�܂��B���̂Ƃ��A�C���^�[�t�F�C�X�̋@�\���󂯌p�����Ƃ́u�p������v�ł͂Ȃ��u��������v�ƌ����܂��B�C���^�[�t�F�C�X����������ꍇ�ɂ́Aextends�L�[���[�h�̑����implements�L�[���[�h���g�p���܂��B�C���^�[�t�F�C�X�����������N���X�̂��Ƃ��u�����N���X�v�Ƃ����܂��B�܂��A�����̃C���^�[�t�F�C�X����������K�v������ꍇ�ɂ́A�C���^�[�t�F�C�X�����J���}��؂�ŋL�q���܂��B

�EFigure.class.php
<?php
interface Figure {
    public function getArea();
}
?>

�Einterface.php
<?php
require_once('Figure.class.php');
class Triangle implements Figure {
    private $width;
    private $height;
    public function __construct($width, $height){
        $this->width = $width;
        $this->height = $height;
    }
    public final function getArea(){
        return $this->width * $this->height / 2;
    }
}
class Square implements Figure {
    private $width;
    private $height;
    public function __construct($width, $height){
        $this->width = $width;
        $this->height = $height;
    }
    public final function getArea(){
        return $this->width * $this->height;
    }
}
$tri = new Triangle(10, 5);
$sqr = new Square(10, 5);
print('�O�p�`�̖ʐς�'.$tri->getArea().'�ł��B<br>');
print('�l�p�`�̖ʐς�'.$sqr->getArea().'�ł��B<br>');
?>
TOP

__autoload�֐�

�@PHP�T�ł́A�I�u�W�F�N�g�w���\������������A����Ȃ�JAVA���C�N�ȃI�u�W�F�N�g�w���v���O���~���O���”\�ɂȂ�܂����B����ɁAPHP�T�ł͓Ǝ��Ŏg����\���K�����lj�����Ă��܂��B���̂ЂƂ‚�autoload�֐��ł��B���Ƃ��ƃN���X�͕����̃X�N���v�g����ė��p�����Ƃ������̐�����A�P�N���X�P�t�@�C���ŊǗ����邱�Ƃ��]�܂����Ƃ���Ă��܂��i�����A�Z���v���O�����Ȃǂ͉“ǐ����l�����Đ݌v����Ă��邱�Ƃ�����̂ŗ�O�͂���܂��j�B�P�N���X�P�t�@�C���Ȃ�A���ʂȃN���X��ǂݍ��ޕK�v������܂��񂵁A�t�@�C���Ǘ��Ƃ����ϓ_������������₷���Ȃ�܂��B�����A�P�N���X�P�t�@�C�������ō쐬���Ă����ƈ����N���X�������Ă����ꍇ�ɂЂƂ‚ЂƂ‚̃N���X�t�@�C���ɂ‚���include_once�֐���require_once�֐����L�q���邱�Ƃ��傫�Ȏ�ԂɂȂ�܂����A�L�q�R�����̌����ɂ��Ȃ�܂��B�����Ŗ��ɗ��‚̂�__autoload�֐��ł��B

�@__autoload�֐��́A����`�N���X���Ăяo�����^�C�~���O�Ŏ����I�ɌĂяo�������ʂȊ֐��ł���A�Ăяo��������`�̃N���X�̖��O�������Ƃ��ēn����܂��B__autoload�֐��́A���ꎩ�̂͂Ȃ������������Ȃ����O�����\�񂳂ꂽ�֐��ł��B��ʓI�ɂ́A�u�N���X��.class.php�v�̂悤�Ȍ`���ł��炩���߃t�@�C�����Ɉ��̋K������݂�����ŁA__autoload�֐�����require_once�֐����Ăяo���A�N���X���Ăяo���ꂽ�^�C�~���O�Ŏ����I�ɓ����̃N���X�t�@�C�����C���N���[�h����悤�ȗp�r�Ŏg�p���܂��B

�@__autoload�֐��𗘗p����ƁA�N���X���Ƃ�require_once�֐����Ăяo���K�v���Ȃ��Ȃ�̂ŁA�R�[�h���V���v���ɂȂ�܂��B�܂��A�X�N���v�g���Ŏg�p���邩�ǂ���������Ȃ��N���X���C���N���[�h���Ȃ��Ă��ςނ̂ŏ�����̃I�[�o�[�w�b�h���y�����܂��B�Ȃ��A__autoload�֐����`�����X�N���v�g�́A���̐�����A�A�v���P�[�V�������̂��ׂẴX�N���v�g�ŗL���ɂ��Ă������Ƃ������߂��܂��B�A�v���P�[�V�����z���̃t�@�C���ɑ΂���autoload.php�������I�ɓǂݍ��ނ��߂ɂ́A.htaccess�t�@�C���𗘗p���܂��B

�Eautoload.php
<?php
function __autoload($name){
    require_once($name . '.class.php');
}
?>


�Eauto_load.php
<?php
require_once('autoload.php');
$obj = new MyClass();
$obj -> width = 10;
$obj -> height = 5;
print('�O�p�`�̖ʐς�'.$obj->triangle().'�ł��B<br>');
?>
TOP

.htaccess

�@.htaccess�t�@�C���i�擪�Ƀh�b�g���‚��BUNIX�n��ł͐擪�Ƀh�b�g���‚��t�@�C���͉B���t�@�C�������̈Ӗ��ɂȂ�j�́AApache�W���̐ݒ�t�@�C���ŁA�h�L�������g���[�g�z���̔C�ӂ̃f�B���N�g���ɔz�u���邱�ƂŁA�Y������f�B���N�g���ƁA���̔z���̃T�u�f�B���N�g���ɑ΂��Ă����K�p�����p�����[�^��ݒ肷�邱�Ƃ��ł��܂��Bphp.ini�𗘗p����ƃT�[�o�[�S�̂ɑ΂��Đݒ肪�K�p����Ă��܂��܂����A���̂悤�ɓ���̃A�v���P�[�V�����ɑ΂��Đݒ��K�p�������Ƃ����ꍇ�́A.htaccess�𗘗p���܂��B�����͈ȉ��̂Ƃ���ł��B

<IfModule mod_php5.c>
    php_value  �p�����[�^��  �p�����[�^�l
    php_flag   �p�����[�^��  on | off
<IfModule>
�@�p�����[�^�l��on�܂���off�ŕ\�����ꍇ�ɂ́Aphp_flag���A����ȊO�̒l�ł���ꍇ�ɂ�php_value���g�p���܂��Bphp_value,php_flag�͕K�v�Ȑ������L�q�ł��܂��B�܂��A.htaccess��PHP�̐ݒ���s���ꍇ�ɂ́A���̂Q�_�ɂ‚��Ē��ӂ���K�v������܂��B

http.conf��AllowOverride�f�B���N�e�B�u��"All"�ɐݒ�
�@AllowOverride�f�B���N�e�B�u�́A.htaccess�t�@�C���ɂ��p�����[�^�̏㏑�����”\�ɂ��邩�ǂ��������߂邽�߂̃p�����[�^�ł��BAllowOverride�f�B���N�e�B�u��"None"�ɐݒ肳��Ă���ꍇ��.htaccess�t�@�C���͖�������܂��B

.htaccess�t�@�C���Őݒ�”\�ȃp�����[�^�͌��܂��Ă���
�@.htaccess�t�@�C���ł́A���ׂĂ�php.ini�̃p�����[�^��ݒ�ł���킯�ł͂���܂���B�p�����[�^�ɂ���ẮAphp.ini�ł����ݒ�ł��Ȃ����̂�����̂Œ��ӂ��Ă��������B�ǂ̃p�����[�^��.htaccess�t�@�C���Őݒ�”\���́Aini_get_all�֐���access�����Q�Ƃ��邱�ƂŊm�F�ł��܂��B�A�N�Z�X���x�����U�܂��͂V�ł���ꍇ�A���̃p�����[�^��.htaccess�Őݒ�”\�ł��B
<?
print '<PRE>';
print_r(ini_get_all());
print '</PRE>';
?>

[�o��]
Array
(
    [allow_call_time_pass_reference] => Array
        (
            [global_value] => 1
            [local_value] => 1
            [access] => 6
        )
    ����
)
TOP

__call���\�b�h

�@__call���\�b�h�́A����`�̃��\�b�h���Ăяo���ꂽ�ꍇ�̋������`���邽�߂̃��\�b�h�ł��B__autoload�֐��Ɠ��lPHP�T�Ǝ��̂��̂ł���A���ꎩ�̂͂Ȃ������������Ȃ����O�����\�񂳂ꂽ���\�b�h�ł��̂ŕK�v�ɉ����Ē��g����������K�v������܂��B__call���\�b�h�͈����Ƃ��āA���\�b�h���ƈ����l�̔z����󂯎�邱�Ƃ��ł��܂��B�ς���̋@�\�ł͂���܂����A���\�b�h���ɉ����ċ��ʓI�ȏ����𕪊򂵂����Ȃǂ̃P�[�X�ŗ��p�ł���ł��傤�B

<?php
class MyClass{
    public function __call($name,$args){
        print('���\�b�h���F'.$name.'<br>');
        print_r($args);
    }
}
$obj = new MyClass();
$obj -> nothing('x','y');
?>

[�o��]
���\�b�h���Fnothing
Array ( [0] => x [1] => y ) 
TOP

__get,__set���\�b�h

�@__get,__set���\�b�h�́A����`�̃v���p�e�B���擾�E�ݒ肵�悤�Ƃ����^�C�~���O�ŌĂяo����郁�\�b�h�ł��B__autoload�֐��Ɠ��lPHP�T�Ǝ��̂��̂ł���A���ꎩ�̂͂Ȃ������������Ȃ����O�����\�񂳂ꂽ���\�b�h�ł��̂ŕK�v�ɉ����Ē��g����������K�v������܂��B__get���\�b�h�́A�擾���悤�Ƃ�������`�̃v���p�e�B�̖��O�������Ƃ��Ď󂯎��܂��B__set���\�b�h�́A�ݒ肵�悤�Ƃ�������`�̃v���p�e�B�̖��O�ƒl�������Ƃ��Ď󂯎��܂��B�����̃��\�b�h���g�p���āA����`�̃v���p�e�B���Q�Ƃ��ꂽ�Ƃ��̏������L�q���܂��B

<?php
class MyClass{
    public function __get($name){
        print($name . '�v���p�e�B���Q�Ƃ���܂����B<br>');
    }
    public function __set($name, $value){
        print($name . '�v���p�e�B�l' . $value . '���Z�b�g����܂����B<br>');
    }
}
$obj = new MyClass();
$obj -> nobody = 1;
print($obj->nobody);
?>

[�o��]
nobody�v���p�e�B�l1���Z�b�g����܂����B
nobody�v���p�e�B���Q�Ƃ���܂����B
TOP