1 minute read

자료형 - Array

  • Array
  • 배열
  • PHP는 특이하게 연관배열(키와 값이 쌍을 이룬 배열)을 제공한다.
  • 보통 JAVA에서는 따로 클래스를 만들어서, JAVASCRIPT 에서는 {}로 객체를 만들어서 사용한다.
  • 키 값은 이미 있는 키 값과 단순 비교(==)해서 덮어 쓸지, 새로 추가할지를 결정한다.
  • $arr[1]=1;
    $arr[true]=2;
    key 1은  key true 와 같은 값이므로 덮어 쓸 것이다.
    결과적으로 
    $arr = array(1=>2); 
     가 된다.

  • 표현식
  • $array = array(
        “bar”,
        “foo”,
    );
  • $array = array(
        “foo” => “bar”,
        “bar” => “foo”,
    );
  • // as of PHP 5.4
    $array = [
        “foo” => “bar”,
        “bar” => “foo”,
    ];

  • 동작
  • $arr[] = 1;
  • 변수 $arr에 1이라는 정수를 배열로 추가한다.(indexed Array로 동작해서 맨 마지막순서로 추가된다.)

  • $arr[‘x’] = 1;
  • 변수 $arr에 키는 x이고 값은 1이라는 정수를 배열로 추가한다.(연관배열로 동작한다.)

  • Object
  • 객체
  • 기본적으로 클래스를 선언하면 객체가 생성된다.
  • 배열을 객체로 변환하면 키값에 따른 멤버변수를 가진 객체로 변경된다.
  • 연관 배열이 사용하기 더 편하기 때문에 따로 객체로 변경해서 쓸 이유는 없어 보인다.

  • 멤버 변수 접근
  • $x = $obj->xxx ;
  • xxx라는 멤버 변수 값을 가져온다.

  • $x = $obj->{$key} ;
  • $key에 지정된 값으로 된 멤버 변수 값을 가져온다.

  • $x = $obj->yyy() ;
  • yyy라는 메소드의 리턴값을 가져온다.

  • $x = $obj->{$key}() ;
  • $key에 지정된 값으로 된 메소드의 리턴값을 가져온다.

  • Resource
  • 리로스, 자원형
  • 리소스 변수을 출력(var_dump)해보면 “resource(5) of type (stream)” 와 유사하게 출력된다.
  • 리소스 변수는 복사되지 않는다. 항상 참조되어 사용한다.
  • 같은 대상을 다시 지정하고 싶으면 리소스변수로 새로 만들어야한다.

  • 기본 변수형 외 잡다한것들
  • fopen, DB 연결 등은 리소스로 처리된다.

  • NULL
  • 널, 값이 없음.

  • NULL인경우
  • 변수에 값이 없는 경우 (notice 발생)
  • unset 으로 변수를 해제한 경우 (notice 발생)
  • 상수 null을 할당한 경우

  • TIP
  • is_null() 로 체크 가능
  • isset()을 사용하면 notice 발생없이 null인지 아닌지 확인 가능.

NULL존재 유무 테스트   1 <?   2 echo “변수에 값이 없는 경우”;   3 $x;   4 var_dump($x);   5 echo “변수를 unset한 경우”;   6 $x =1;   7 unset($x);   8 var_dump($x);   9 echo “변수에 상수 NULL을 할당한 경우”;  10 $x = 1;  11 $x = null;  12 var_dump($x);

변수에 값이 없는 경우 Notice: Undefined variable: x in /private/tmp/test.php on line 4 NULL 변수를 unset한 경우 Notice: Undefined variable: x in /private/tmp/test.php on line 8 NULL 변수에 상수 NULL을 할당한 경우NULL


🔗original-link

Updated: