php class 기본4

php class 에서 __construct 사용에 대한 정리!

class Base {
    function __construct() {
        echo "부모 class";
    }
}

class Sub extends Base {
    function __construct() {
        parent::__construct();
        echo "자식 class";
    }
}

위와 같은 class 가 있다.

$b = new Base; (or new Base();)
$s = new Sub; (or new Sub();)

::result

부모 class >> new Basel 의 결과
부모 class 
자식 class >> new Sub; 의 결과

이 내용으로 알 수 있는 거는
__construct 로 정의된 내용은 class 호출하면 바로 실행된다!

parent 도 사용한걸 꼭 명심!

php class 기본3 work

php class를 사용하면서 접근제한자를 사용할 수 있게 됐다.
보통 PPP라고 하더라는...

public , protected , private

class Test1 {
    var $a = 'a';
    var $b = 'b';
    var $c = 'c';
    public function pub() {       // public 선언
        return $this->a;
    }
    protected function pro() {   // protected 선언
        return $this->b;
    }
    private function pri() {       // private 선언
        return $this->c;
    }
}

class Test2 extends Test1 {
    function fun_pub() {           // public 호출
        return $this->pub();
    }
    function fun_pro() {            // protected 호출
        return $this->pro();
    }
    function fun_pri() {             // private 호출
        return $this->pri();
    }
}

위와 같은 class source 가 있다고 하자.
이 source 를 가지고 테스트하면 참으로 많은 것을 알 수 있다.
테스트 결과!!


---------------------------------------------------------------------------------
1. 테스트1
$v = new Test2;

echo $v->fun_pub();
echo "<br>".$v->fun_pro();
echo "<br>".$v->fun_pri();

의 결과는?
a
b
Fatal error: Call to private method Test1::pri() from context 'Test2' in ******************

테스트1의 결과로 알수 있는 내용은 하위 class에서는 private가 호출이 안된다는 것이다.
---------------------------------------------------------------------------------


---------------------------------------------------------------------------------
2. 테스트2
$v = new Test1;
echo $v->pub();
echo "<br>".$v->pro();
echo "<br>".$v->pri();

의 결과는?
a

테스트2의 결과로 알수 있는 내용은 일반 환경에서 public만 사용을 할 수 있다는 것이다.
즉 protected와 private는 class 밖에서는 호출이 안된다는 것이다.
---------------------------------------------------------------------------------


위의 테스트 결과로 접근제한자의 특성을 하나씩 정리해 보면

1. public
 class : 사용가능
 extends class : 사용가능
 전체 : 사용가능

2. protected
 class : 사용가능
 extends class : 사용가능
 전체 : 사용 불가능

3. private
 class : 사용가능
 extends class : 사용 불가능
 전체 : 사용 불가능

위와 같이 정리를 할 수 있겠다.


php class에 관한 글 모음
1. php class 기본 : http://color106.egloos.com/2830755
2. php class 기본2 : http://color106.egloos.com/2838598
3. php class 기본3 : http://color106.egloos.com/2838610

php class 기본2 work

이것저것 테스트 하던 중에 발견한 것!

class Test {
    var $a = 'a';
    function a() {
        return $this->a;
    }
}

echo Test::a();

위와 같이 사용하면 error가 난다.
Fatal error: Using $this when not in object context in **************
이 error를 피해가려면

echo Test::a();
이거 대신

$v = new Test;
echo $v->a();
이런 식으로 사용을 하면 된다.


추가
php class에 관한 글 모음
1. php class 기본 : http://color106.egloos.com/2830755
2. php class 기본2 : http://color106.egloos.com/2838598
3. php class 기본3 : http://color106.egloos.com/2838610

php setcookie 사용하기

php 에서 쿠키를 구울때 아래 함수를 사용한다.

setcookie($name, $value, $expire, $path, $domain, $secure, $httponly);

$name : 저장될 이름
$value : $name에 저장될 값
$expire : 쿠키 유지 시간(7일 쿠키 : time() + (60 * 60 * 24 * 7) , 브라우저를 닫으면 사라지는 쿠키 : 0)
$path : 특정 디렉토리에서 사용할 경우 사용(전체 도메인 : "/" , 일부 디렉토리 : "/library/")
$domain : 쿠키를 사용할 도메인(www에서만 사용가능 : www.abc.com or abc.com , 모든 서브 도메인에서 사용가능 : .abc.com)
$secure : https에서만 사용할 경우 true , http와 https를 동시에 사용할 경우 false
$httponly : http에서만 사용할 경우 true , javascript 등에서도 사용할 경우 false

위 옵션중 보통 사용하는 수준은

setcookie($name, $value, $expire, $path, $domain);

$secure $httponly 옵션은 보안수준을 요하는 쿠키에서만 사용한다.

입맛에 맞게 사용하자!

if문중 알아두면 좋을거 work

if(true) {
    echo "1";
}

if(false) {
    echo "2";
}

의 결과는

1

입니다.

1 2 3 4 5 6 7 8 9 10 다음


MSN &amp; NATE

msn : prog106@hotmail.com
nate : prog106@nate.com