안녕하세요 워누입니다😀

오늘은 자바스크립트를 입문하시는 분들이라면 꼭 알아야 할 상식 중 하나인

var 키워드와 let 키워드의 차이점에 대해서 포스팅해보고자 합니다. 

해당 내용은 가장 기본적이기에 자바스크립트 개발자(신입)로 입사지원 시 기술면접에서 물어보기도 하니,

필요하신 분들에게 도움이 되기를 바라며 글을 시작해보겠습니다!🤗🤗🤗

 

** 차이점만 간략하게 알고 싶으신 분들은 스크롤을 아래로 내려 표만 보셔도 됩니다(☞゚ヮ゚)☞ **

 

var 키워드, let 키워드 모두 아래처럼 변수 선언 시 사용한다는 것은 아실 거라 믿습니다!

 

var num1 = 12;

let num2 = 34;

 

두 키워드가 차이가 없다면 굳이 var, let을 구분하지 않았겠죠?

차이점을 알기 위해서 정확하게 알아두어야 할 개념이 두개 정도 있으니 함께 보면서 알아봅시다! 

 

1. 스코프(유효 범위)

 

특정 변수를 사용할 수 있는 유효 범위를 '스코프'라고 합니다.

흔히 조건문, 반복문, 대괄호 등으로 만들어 지는데요, 아래 간단한 예시로 보여드릴게요!

 

// 전역 스코프

{
    // 스코프 A
    
    {
        // 스코프 A-1
    }
}

{
    // 스코프 B
}

위 예시에서 대괄호로 감싼 부분이 하나의 유효 스코프입니다!

추가로 전역 스코프는 "가장 외곽에 있는 코드를 입력할 수 있는, 전체가 유효한 범위"라는 개념이고 이러한 전역 스코프를 포함해서 스코프의 갯수는 총 4개임을 알수 있습니다..!

 

이 개념을 잘 숙지하시고 아래 예시를 봐주세요!

(다른 html 코드는 생략하고 script 부분만 보여드릴게요!)

<script>

    {
        // 스코프 A
        var num = 12;
    }
    {
        // 스코프 B
        alert(num);
    }

    // 전역 스코프
    alert(num);
	
</script>

var 키워드로 스코프 A에서 선언 후 스코프 B와 전역 스코프에서 alert으로 출력 시

두 명령어 모두 정상적으로 실행되어 아래 이미지가 두번 출력됨을 알 수 있을 것입니다.

즉, var 키워드로 선언한 변수는 다른 스코프에서도 사용할 수 있다는 이야기가 되죠..!

그럼 이번엔 var 키워드를 let 키워드로 바꿔볼까요?

<script>

    {
        // 스코프 A
        let num = 12;
    }
    {
        // 스코프 B
        alert(num);
    }

    // 전역 스코프
    alert(num);
	
</script>

실행하면 정상적으로 alert이 뜨지 않을 건데요,

VS Code에서 실행하여 디버그 콘솔 창을 확인하거나

브라우저 실행 시 개발자 도구 등을 통해 아래와 같은 오류 메세지가 출력됨을 확인할 수 있습니다!

 

VS Code 디버그 콘솔에서 확인한 오류 메세지
크롬 개발자 도구를 통해 확인한 오류 메세지

위 오류 메세지의 뜻은 num이라는 변수명이 정의되지 않았다는 의미인데요, 

이렇게 두가지 테스트를 통해 var 키워드와 let 키워드의 차이점을 확인했으니 한번 정리해보죠!

 

var 키워드 : 전역 스코프 위치에 변수를 선언하는 키워드

let 키워드 : 특정 스코프 내부에서만 유효한 변수를 선언하는 키워드

 

스코프 범위에 따라 구분을 해보았는데요,

이로 인해 let 키워드는 특정 스코프 내부에서만 변수를 사용 후 스코프를 벗어나면 영향을 끼치지 않아 메모리 등 시스템 자원을 적절하게 이용할 수 있는 반면 var 키워드는 그렇지 못하다는 단점이 있습니다🤔

 

위에서 설명드린 var 키워드의 특성을 제대로 이해하지 못하고 사용한다면 다양한 실수를 유발하기도 하는데요,

비동기 함수에서의 문제가 조금 대표적이기 때문에 잠깐 소개해드리도록 할게요!

 

<script>
	
    for(var i=0; i<3; i++){
        setTimeout(() => {
            alert(i);
        }, 1000*i);
    }
    
</script>

위 함수의 실행 결과를 한번 예측해봅시다. 

setTimeOut() 함수는 첫 번째 매개변수에 넣은 코드(함수)를 두 번째 매개변수에 넣은 시간 이후에 실행하게 만드는 함수인데요, 이 코드를 실행하면 0초 후 '0', 1초 후 '1', 2초 후 '2'를 출력할 거라 예상하실 거에요!

 

하지만 실제로 실행을 해보면...

...?

1초 간격을 두고 '3'을 3번 출력하게 되는데요,

1초 후에 i를 출력할 때 i는 이미 반복문을 수행 후 전역 스코프에 '3'으로 저장되었기 때문에 '3'만 3번 출력한 것입니다. 

 

let 키워드를 사용하지 않으면서 위 현상을 방지하기 위해서는 아래와 같이 코드를 수정해서 사용하여야 했습니다. 

 

<script>
	
    for(var i=0; i<3; i++){
        ((i) => {
            setTimeout(() => {
                alert(i);
            }, 1000*i);
        })(i);
    }

</script>

딱 봐도 복잡해보이죠?

함수로 한번 감싸놓고 사용할 변수를 전달하는 방식이다 보니 코드가 지저분해진 것을 볼 수 있어요...😮

 

그래도 실행해보면 아래와 같이 출력은 정상적으로 진행됩니다. 

 

하지만 이것을 let으로 바꾸면...!

<script>
	
    for(let i=0; i<3; i++){
        setTimeout(() => {
            alert(i);
        }, 1000*i);
    }
    
</script>

복잡하지도 않고 실행결과는 처음 예상한 것처럼 0, 1, 2를 순서대로 출력되는 것을 볼 수 있어요!

이런 식으로 var 키워드의 단점을 let 키워드로 보완할 수 있답니다!

 

2. 재선언

재선언이란 같은 이름으로 변수 또는 상수를 다시 선언하는 것을 말하는데요, 

var 키워드는 재선언을 허용하는 반면 let 키워드는 재선언을 허용하지 않습니다. 

 

VS Code를 통해 테스트한 결과를 바로 보여드릴게요!

 

 

var 키워드로 선언한 num1 변수는 재선언해도 문제 없이 넘어갔지만, num2는 재선언 시 이미 선언되었다는 뜻의 오류 메세지가 출력되었다는 것을 볼 수 있었습니다!

 

이렇게 보면 var 키워드 보다는 let 키워드를 쓰는게 좋겠다 생각이 드시겠지만, let 키워드는 ECMAScript 6에서 추가된 개념이기에 기존에 작성된 프로그램들은 대부분 var 키워드를 사용했을 것입니다!

또한 let 키워드는 인터넷 익스플로러에서는 지원하지 않기에 let 키워드를 사용하여 개발한 경우 인터넷 익스플로러에서는 정상적으로 동작하지 않는다는 특이사항이 있답니다.

(어차피 올해 하반기에는 익스플로러 이용 자체가 종료되어서 큰 의미를 두지 않아도 될것 같네요😐)

 

여기까지 두 키워드의 차이점을 알아보았습니다!

글이 너무 기니까 아래 표를 통해 한번 더 정리해보록 할게요:)

 

키워드 유효 범위 재선언 가능 여부
var 전역 스코프 가능
let 특정 스코프 내에서만 사용 불가능

 

사실 이 간단한 내용을 작성하기 위해 위에서 쓸데없이 설명이 길었던 것 같긴 하지만

확실하게 알아두면 좋을 것 같아 정리해보았습니다!

 

자바스크립트 개발 입문자 분들에게 도움이 되길 바라며 여기서 글을 마무리하겠습니다:)

 

 

 

안녕하세요 워누입니다😀

오늘은 지난번 정규표현식 2번째 포스팅에서 언급했던 filter_var() 함수에 대하여 포스팅해보고자 합니다!

 

(이메일 유효성 검사를 하는 방법으로 정규표현식과 함께 소개하였으며 자세한 내용은 아래 링크로!!)

https://seoneu.tistory.com/43

 

[PHP] 전화번호, 이메일 유효성 검사 :: 정규표현식 활용 (2)

안녕하세요 워누입니다😀 지난 포스팅에 이어 오늘은 전화번호와 이메일 데이터에 대하여 정규표현식을 이용해 유효성을 검사해보는 방법을 포스팅해보겠습니다! 1. 전화번호 전화번호의 유

seoneu.tistory.com

 

PHP에서 제공하는 filter_var() 함수는 특정한 값을 검사하는 함수로,

두 번째 매개변수의 값에 따라 검사할 유형을 다르게 설정할 수 있습니다.

아래와 같은 형식으로 사용할 수 있습니다 

filter_var('검사할 값', 검사할 유형, (옵션));

 

 

'검사할 값'은 말 그대로 검사를 받을 대상(값)을 의미하며, 

'검사할 유형' 은 어떤 형식으로 검사할 건지를 결정할 수 있습니다!

검사할 유형에 따라 옵션을 사용할 수 있으며 자세한 내용은 아래 표를 참고해주세요🙂

 

파라미터(Parameter) 검사 유형 설명(Discription)
FILTER_VALIDATE_BOOLEAN
FILTER_VALIDATE_BOOL
Bool '1', 'true', 'on', 'yes'라는 데이터를 검사하면 'TRUE'를 응답합니다.
이외의 다른 값은 'FALSE'를 응답합니다.

*PHP 8 버전에서 추가된 파라미터입니다.
FILTER_VALIDATE_DOMAIN 도메인 입력된 값이 도메인 형식인지 검사합니다.
(예시 : http://test.domain.com)
도메인 형식이 맞다면 'TRUE'를 응답하고, 아니라면 'FALSE'를 응답합니다. 

*PHP 7 버전에서 추가된 파라미터입니다.
FILTER_VALIDATE_EMAIL 이메일 입력된 값이 이메일 형식인지 검사합니다. (예시 : id@testmail.com)
이메일 형식이 맞다면 'TRUE'를 응답하고, 아니라면 'FALSE'를 응답합니다.

<옵션 파라미터 및 설명>
FILTER_FLAG_EMAIL_UNICODE : 이메일 주소 중 로컬(예시 중 'testmail'에 해당하는 부분)에 유니코드 문자를 포함하여 검사하는 옵션입니다.
FILTER_VALIDATE_FLOAT 실수 입력된 값이 실수 형식인지 검사합니다. (예시: 3.4, 12.01 ...)
이메일 형식이 맞다면 'TRUE'를 응답하고, 아니라면 'FALSE'를 응답합니다.

<옵션 파라미터 및 설명>
FILTER_FLAG_ALLOW_THOUSAND : 1000 단위 숫자를 콤마( , ) 기호로 구분합니다.
FILTER_VALIDATE_INT 정수 입력된 값이 10진수 정수 형식인지 검사합니다. (예시 : 1, 52, -4 ...)
이메일 형식이 맞다면 'TRUE'를 응답하고, 아니라면 'FALSE'를 응답합니다.

<옵션 파라미터 및 설명>
FILTER_FLAG_ALLOW_OCTAL : 입력된 값을 8진수로 검증하는 옵션입니다. 입력된 값이 0으로 시작하는 8진수의 데이터라면 TRUE를 응답하고, 아니라면 'FALSE'를 응답합니다.

FILTER_FLAG_ALLOW_HEX : 입력된 값을 16진수로 검증하는 옵션입니다. 입력된 값이 0x 혹은 0X으로 시작하는 16진수의 데이터라면 TRUE를 응답하고, 아니라면 'FALSE'를 응답합니다.
FILTER_VALIDATE_IP 아이피 입력된 값이 IP(default : IPv4) 형식인지 검사합니다.
(예시 : 192.168.0.101)
이메일 형식이 맞다면 'TRUE'를 응답하고, 아니라면 'FALSE'를 응답합니다.

<옵션 파라미터 및 설명>
FILTER_FLAG_IPV4 : IP를 IPv4 형식으로 검사하는 옵션입니다.
FILTER_FLAG_IPV6 : IP를 IPv6 형식으로 검사하는 옵션입니다.
FILTER_VALIDATE_MAC 맥(MAC) 주소 입력된 값이 맥(MAC) 주소 형식인지 검사합니다.
(예시 : 00-FF-2D-72-E8-F0)
맥 주소 형식이 맞다면 'TRUE'를 응답하고, 아니라면 'FALSE'를 응답합니다.
FILTER_VALIDATE_REGEXP 정규식(Perl 호환) 입력된 값이 정규식 형식인지 검사합니다.
정규식 형식이 맞다면 'TRUE'를 응답하고, 아니라면 'FALSE'를 응답합니다.
FILTER_VALIDATE_URL URL 입력된 값이 URL 형식인지 검사합니다.
(예시 : http://test.domain.com)
URL 형식이 맞다면 'TRUE'를 응답하고, 아니라면 'FALSE'를 응답합니다.

<옵션 파라미터 및 설명>
FILTER_FLAG_SCHEME_REQUIRED : 입력 URL의 RFC를 준수하였는지 검사하는 옵션입니다. (예시 : http://example)

FILTER_FLAG_HOST_REQUIRED : 입력 URL의 호스트 이름이 포함되어 있는지 검사하는 옵션입니다. (예시 : http://test.domain.com)

FILTER_FLAG_PATH_REQUIRED : 입력 URL의 도메인 이름 뒤에 경로가 있는지 검사하는 옵션입니다.
(예시 : http://test.domain.com/example/).

FILTER_FLAG_QUERY_REQUIRED : 입력 URL의 쿼리 문자열이 있는지 검사하는 옵션입니다.(예: http://test.domain.com/example/test.php?query=value).

제가 알아보기 쉽게 작성한 내용이다 보니

위 표의 내용에 대하여 더 자세히 알고 싶으시다면 PHP에서 제공하는 매뉴얼을 참고해주시면 됩니다.

https://www.php.net/manual/en/filter.filters.validate.php

 

PHP: Validate filters - Manual

Contrary to what documentation implies, the FILTER_NULL_ON_FAILURE seem to affect any validation filter, not just FILTER_VALIDATE_BOOLEAN. I've been using that since PHP 5.2, and as of PHP 5.6.8 it still works. I have no clue if it's a blug or if it is as

www.php.net

 

 

그럼 이제 예시 코드를 보실까요?

간단하게 IP 검증하는 방법과 URL 검증하는 것 두 개 정도만 한번 보도록 하겠습니다!

(이번에는 요청-응답 페이지 없이 PHP 파일만 보여드리겠습니다🙂)

 

IP는 다음과 같이 검증합니다!

<?php

// 검증할 IP
$checkIP = "192.168.0.101" ;

// 검증
if (filter_var($checkIP, FILTER_VALIDATE_IP)) {
  echo $checkIP."은 정상적인 IP입니다.";
} else {
  echo "올바르지 않은 IP를 입력하셨습니다.";
}

?>

 

위 소스코드를 실행하면 다음과 같은 결과를 얻을 수 있습니다. 

 

IP가 정상적으로 검증된 것을 볼 수 있습니다ㅎㅎ

검증하는 값이 IP 형식과 맞지 않다면 "올바르지 않은 IP를 입력하셨습니다."라고 나오겠죠?

 

다음으로 URL을 검증해봅시다!

<?php

// 검증할 URL
$checkUrl = "http://test.domain.com";

// 검증
if (filter_var($checkUrl, FILTER_VALIDATE_URL)) {
  echo $checkUrl."은 정상적인 url입니다.";
} else {
  echo "올바르지 않은 url을 입력하셨습니다.";
}

?>

 

위 소스코드를 실행하면 아래와 같은 결과를 얻을 수 있습니다. 

마지막으로 URL 검증할 때 사용할 수 있는 옵션을 적용해보겠습니다!

표에 소개된 URL 추가 검증 옵션 중 "FILTER_FLAG_QUERY_REQUIRED"를 사용하여 검증해봅시다!!

<?php

// 검증할 URL+Qurey
$checkUrl = "http://test.domain.com/example/test.php?query=value" ;

// 검증
if (filter_var($checkUrl, FILTER_VALIDATE_URL, FILTER_FLAG_QUERY_REQUIRED )) {
  echo $checkUrl."은 정상적인 url입니다.";
} else {
  echo "올바르지 않은 url을 입력하셨습니다.";
}
?>

위 소스코드를 실행하면 아래와 같은 결과를 얻을 수 있습니다. 

 

세번째 매개변수에 옵션을 넣어서 검증된 것을 볼 수 있습니다!

 

위 내용을 활용하여 PHP로 개발된 웹 페이지에서 특정 IP를 전달받는 경우, 회원가입 페이지를 구성하여 이메일을 검증하거나 숫자로 된 데이터(나이, 생년월일, 휴대폰 번호 등)를 검증하는 경우 등 나름 쓸만한 구석이 있을 것 같네요 ㅎㅎ

 

이 글을 읽어주시는 분들께서도 도움이 되었기를 바라며, 오늘 포스팅은 여기서 마무리하겠습니다😁

안녕하세요 워누입니다. 

오늘은 PHP에서 사용하는 비교연산자 중 헷갈릴만한 요소를 포스팅해보고자 합니다!

.

우선 소스부터 함께 보시죠!

.

:: 소스코드 - equalTest.php ::

<?php 

$int5 = 5;				// 정수형 숫자 5
$str5 = '5';				// 문자열 5

if ($int5 == $str5){		
	echo "true"."<br>";
} else {
	echo "false"."<br>";
}

if ($int5 === $str5){
	echo "true"."<br>";
} else {
	echo "false"."<br>";
}
?>

위 소스코드는 숫자 5와, 문자열 5를 비교하여 같으면 true, 다르면 false를 출력하는 소스코드입니다. 

아래 결과를 보기 전 결과가 어떨지  미리 생각해보아요~

.

결과는 어떤지 이제 한번 보도록 하죠!

.

:: 결과화면 ::

equalTest.php 실행화면

 

비교연산자 중 '==' 으로 비교한건 true가 나오고, '===' 으로 비교한건 false가 나왔네요! 

이유는 '=='으로 비교할 땐 값의 일치여부만 판단하지만,

'==='으로 비교하게 되면 자료형의 일치여부까지도 판단하기 때문인데요!

즉, 변수 int5와 str5의 값은 동일하게 '5'이므로 '=='으로 비교하였을 땐 같다고 판단하여 true를,

'==='으로 비교하였을 땐 자료형이 각각 정수, 문자열로 서로 다르기에 false를 출력하였습니다!

.

그렇다면 부정을 의미하는 !=, !==은 어떤지 같이 살펴 볼까요?

 

:: 소스코드 - equalTest2.php ::

<?php 

$int5 = 5;				// 정수형 숫자 5
$str5 = '5';				// 문자열 5

if ($int5 != $str5){		
	echo "true"."<br>";
} else {
	echo "false"."<br>";
}

if ($int5 !== $str5){
	echo "true"."<br>";
} else {
	echo "false"."<br>";
}

?>

 

이번엔 반대로 다르면 true, 같으면 false를 출력하도록 바꿨습니다.

결과를 바로 보시죠!

 

:: 결과화면 ::

equalTest2.php

 

예상대로 '!='로 비교하였을 땐 두 변수 모두 같은 값을 가지고 있어 false를 출력하였고, 

'!=='으로 비교하였을 땐 두 변수의 자료형이 다르니 true를 출력하였네요!

 

!= 연산자는 값의 다름만을 판별하지만,

!== 연산자는 값은 물론 자료형의 다름까지 판별한다는 점을 알게 되었네요 ㅎㅎ

.

위에서 언급한 '==', '===', '!=', '!==' 비교연산자는 javascript에서도 동일하게 적용된다고 하네요!

php가 웹에 특화된 언어인 만큼 javascript를 같이 사용하시는 분도 많을테니 참고하시면 도움이 될 듯합니다!

 

이번 포스팅도 유용한 글이 되었기를 바라며, 여기서 마무리 하겠습니다!

그럼 2만~

 

안녕하세요 워누입니다!

방통대 학업과 회사 일을 병행하다 보니 꾸준히 포스팅하겠다는 의지가 꺾여버렸네요..

그동안 포스팅해야 하는 내용들을 산더미처럼 쌓아놓고 정작 쓰질 않아 귀찮음이 좀 많이 생겼지만,

이제라도 하나씩 풀어야겠습니다!  

.

오늘 포스팅할 내용은 PHP로 JSON data를 다루는 법을 포스팅하겠습니다! 

PHP에서 JSON data를 처리할 수 있도록 json_encode(), json_decode() 함수를 지원합니다.

 

우선 json_encode() 부터 볼까요? 

.

1. json_encode()

:: php에서 배열 데이터를 json 데이터로 바꿔주는 역할을 합니다. 

사용 방법은 아래와 같이 사용하시면 됩니다!

 

json_encode(변수);

.

그럼 거두절미하고 바로 사용예시부터 볼까요?

:: 소스 코드(example) / jsonEncode.php :: 

<?php

//배열 데이터 생성 
$arrData = array(
	'ID' => 'testID',
	'buyerNm' => 'testName',
	'buyerPhoneNum' => '01012345678',
	'goodsData' => array(
		'goodsNm' => 'testGoods',
		'price' => 1000
	)
);

var_dump($arrData);
echo "<br>";

// json 데이터로 변경
$jsonData = json_encode($arrData); 

var_dump($jsonData);

?>

:: 출력 결과 ::

jsonEncode.php 실행 결과

보이시나요?

배열 데이터가 저장된 arrData를 json_encode()라는 함수 하나만으로 json 데이터 형식으로 변경이 되었습니다!!(박수)

변수의 저장 타입도 배열(array)에서 문자열(string)으로 변경된 것을 알수 있습니다 ㅎㅎ

 

그럼 이번엔 반대의 경우로 가볼까요?

우선 json data 파일을 만들어봅시다. json data 파일을 만드는 방법은 간단합니다!

json data 형식을 툴 아무데서나 작성한 뒤, 확장자를 json으로 저장해주시면 되거든요!!

.

:: json data 파일 (ex.json) ::

{
	"ID":"testID",
	"buyerNm":"testName",
	"buyerPhoneNum":"01012345678",
	"goodsData":{
		"goodsNm":"testGoods",
		"price":1000
	}
}

 

이렇게 작성된 json 파일을 file_get_contents() 함수로 불러와서 사용 예정입니다!

(file_get_contents()에 대한 설명은 아래 링크 참조해주세요!)

https://seoneu.tistory.com/25

 

API 통신할 때 file_get_contents(), curl은 무슨 차이일까?

안녕하세요 워누입니다! 오늘은 제가 회사에서 개발하다가 궁금한 점이 부딪혀서 직접 알아본 내용을 포스팅하고자 합니다. . 상황은 API 호출 시 특정 URL로 form-data를 post로 던지고 그 결과를 받

seoneu.tistory.com

 

그리고 아래와 같이 json data를 json_decode() 함수를 이용해 배열 데이터로 바꾸어봅시다!

json_decode(변수, true)

true..? 왜 들어갔는지는 글 아래에 후술해드릴게요!

간략하게만 설명드리면 json_decode에서 true로 지정이 되지 않으면 다른 파일 형태로 변경되더라구요!

그러니 우선은 꼭 true로 설정해주세요!! 

.

이제 사용 예시를 보여드릴께요!

.

:: 소스 코드(example) / jsonDecode.php :: 

<?php

//json data
$jsonData = file_get_contents("ex.json");
var_dump($jsonData);
echo "<br>";

// 배열 타입으로 변경
$arrData = json_decode($jsonData, true);

var_dump($arrData);

?>

:: 출력 결과 ::

jsonDecode.php 출력 결과

 

어떠신가요? 생각보다 간단하죠??

이렇게 json_encode(), json_decode() 사용 방법을 알아보았습니다!

근데 위에서 제가 json_decode()를 사용할 때, 2번째 매개변수로 true를 반드시 입력해야 한다고 했죠??

그 이유가 무엇인지 jsonDecode.php 파일에 코드를 추가하여 다시 실행해보도록 하겠습니다!

 

:: 소스 코드(example) / jsonDecode.php ::

<?php

//json data
$jsonData = file_get_contents("ex.json");
var_dump($jsonData);
echo "<br>";

$arrData = json_decode($jsonData, true); // true 입력
$arrData2 = json_decode($jsonData); // true 미입력 (false)

var_dump($arrData);  // true 입력한 결과
echo "<br>";
var_dump($arrData2); // true 미입력 결과 (false 결과)

?>

:: 출력 결과 ::

jsonDecode.php 출력 결과

....? 

true 값을 없애니, type이 array가 아닌 object(stdClass)라는 값이 왔네요??

이게 무엇인지 몰라 구글신께 검색하여 object라는 type이 PHP에 따로 있어서 찾아본 결과... 

 

일단 뜻은 흔히 알고 있는 객체(클래스의 '객체'할 때 그 객체가 맞습니다!)를 의미하고, 

stdClass는 PHP에서 일반적으로 쓰이는, 비어있는 클래스를 의미하며 다른 object를 캐스팅할 때 쓴다고 합니다. 

.

정리하면 변수 $arrData2는 stdClass에 캐스팅된 object 타입의 변수라 합니다..

(어려워서 좀더 찾아봐야 알 것 같지만 일반적인 배열이 아닌 object 타입의

클래스 기반 배열이라고 보시면 될 것 같네요.. 이거 때문에 회사에서 시간낭비한건 안비밀..)

 

PHP 개발자 분들 중 혹시 자세히 알고 계신 분이 있다면 댓글로 남겨주세요!! 

저도 더 정리할 수 있는 내용이 있다면 수정해서 올리거나, 댓글로 남기도록 하겠습니다!!

오늘 포스팅은 여기서 마치도록 할게요 ㅎㅎ 그럼 이만!

 

 

+ Recent posts