happy cat image

everdevel

우리 모두의 웹 입문, 에버디벨

에버디벨이 책을 냈어요.!!
눌러주세요.

지은이 : 에버디벨 운영자

UI 변경

주석문과 변수 그리고 상수

PHP 에서의 주석문

주석은 여러분들께서 프로그래밍을 하시면서 어떠한 프로그래밍 소스가 어떠한 기능을 하는지 등등 여러분들이 그 소스에 남기고 싶은 문구를 적을수 있습니다.
하지만 그러한 문구를 적으면 에러가 나기때문에 주석처리라는것을 하면 에러가 발생하지 않습니다.
여러분이 여러줄의 문구를 주석처리 하려면

시작은 /*

끝은 */

이렇게 처리해주면 됩니다.

예를 들어

<?php
  /*
    echo "hello world";
    echo 문을 처음 배워서 화면에 hello world라는 문구를 띄우는 소스이다.
    나는 이 작업이 너무 즐겁다. 하지만 hello world는 주석문 안에 있으므로 출력되지 않는다.
  */
?>

위와같은 소스를 입력했다면 결과는 아무것도 나오지 않는다 echo문이 주석처리가 되었기 때문이다.

한줄로 주석을 처리할때는 //를 사용한다.

HTML에 PHP소스를 넣는것도 가능하다 실무에서는 많이 사용한다./p>

<html>
<head>
<title> html에 php 첨부하기</title>
</head>
<body>
<font>
<?php
    echo "html안에 php를 첨부";
?>
</font>
</body>
</html>

변수와 상수

php에서는 다른언어와 달리 변수를 선언할때 $(스트링)을 붙여서 사용합니다.

ex) 타 프로그램 언어

int var;

var = 10;

php에서는

$var = 10;

이렇게 사용됩니다.

변수 선언시에는 @,#,%,&,- 등의 특수문자나 숫자를 넣어서는 안된다.

두개의 단어를 변수로 지정하고자 할때는 언더바를 사용하는 경우도 있고, 카멜표기법을 사용하기도 합니다.
예를 들어 언더바를 사용하는 경우는
$my_car
이렇게 사용합니다.
카멜표기법은 카멜은 낙타를 뜻하는 영어단어이며, 낙타의 등 모양처럼 작성하는 방법을 말합니다.
처음시작하는 단어의 첫문자는 소문자를 사용하며 그 다음오는 다른 단어의 첫문자만 대문자를 사용합니다. 예를 들어
$myCar
위와 같이 사용합니다. 주로 카멜표기법을 많이 사용하니 카멜표기법을 사용해 주면 좋습니다.

<?php
echo "변수 선언 하는 법<br />";
$num = 33;
$num2 = 33.33;
$studentName = "hong gil dong";
echo "\$num = $num <br />";
echo "\$num2 = $num2 <br />";
echo "\$studentName = $studentName";
?>

위의 소스에서 변수명 앞에 \를 쓰는이유가 궁금할 것입니다.

echo " "; 안에서 변수명을 쓰면 그 변수의 값이 출력이 되지만 앞에 \를 붙여주면 그 변수명이 출력됩니다.

즉 $num 이라고 쓰면 결과가 33이 나오지만 \$num 을 쓰면 결과가 $num이 나옵니다.

혹시 다른 프로그래밍 언어를 공부하신 분이라면 변수 형 지정에 대해서 이상하다고 느끼실수 있습니다.

어째서 실수에 float 를 정수에 int를 지정하지 않는거지 라고 생각할것입니다..

php에서는 변수의 데이터형을 따로 지정해 주지 않으며. 그 변수에 따라서 데이터형이 자동으로 결정됩니다.

조금 편하죠. ^^ 혹시 프로그래밍을 경험해 보지 않은 분이시라면 보통 다른 프로그래밍 언어에서는 문구를 변수에 넣을때 변수 선언전 문구라는 표시를 숫자라면 숫자라는 표시 실수라면 실수라는 표시를 해주지만 php는 자동으로 해줍니다.

같은 변수명의 다른 값이 입력된다면 나중에 입력된 값으로 치환이 됩니다.

예를 들어 아래와 같은 소스가 있다고 한다면

<?php
  $num = 55;
  echo "$num";
  $num = 66.66;
  echo "$num";
?>

$num 은 정수형에서 실수형으로 타입이 변경됩니다. 무슨 말씀이신지 잘 모르시는분 계실수도 어차피 하다보면 나중에 이해가 됩니다. 이걸로 왜 안되지 하면서 시간 낭비 하지 않으셔도 됩니다.

gettype을 사용하면 변수의 데이터형을 알 수 있습니다.

예를 들어 echo gettype($num);

을 입력하면 $num의 데이터형이 출력됩니다.

정수는 integer

실수는 double

다음은 자동 형변환

수학 = 100 점

영어 = 95 점

과학 = 85 점 의 총점과 평균을 구하는 프로그램이라할때

평균점수는 연산결과에 따른 변수의 형변환이 된다.

<?php
  echo " 3과목의 평균을 구해보아요 ";
  echo "---------------------------- <br />";

  $math = 100;
  $english = 95;
  $science = 85;

  $sum = $math + $english + $science;       // < ===== $sum이라는 변수를 만들고 값은 3과목의 합이다.
  $avg = $sum/3;                                           //     3으로나눠서 평균값이 $avg의 값이 된다.

  echo " math point : $math <br /> english point : $english <br /> science point : $science <br />";

  echo "======================== <br />";

  echo " total : $sum <br />";

  echo " average : $avg <br />";

  echo "======================== <br />";

  echo " what is the type of \$avg?  <br />";

  echo gettype($avg);
?>

결과 값은

아래와 같다. 보시다 싶이 $avg 는 데이터형이 double로 되어있다.

php image

정수형의 오버플로우 형변환...

정수형 값의 표현인 (-2147483648 ~ 2147483647)를 초과하게 되면 정수형이 아닌 실수형으로 넘어가게 됩니다.

아래의 예제에서 var_dump()라는 함수를 사용합니다. 이 함수는 데이터형과 값을 출력해줍니다. 실무에서 많이 사용하니 기억해 주세요.^^;

그럼 테스트를 해보자!!!

<?php
  echo "오버플로우 형 변환 <br />";
  echo "------------------------ <br />";
  $num = 2147483647; // 범위안에 가장 큰 수를 넣는다.
  echo "변수 \$num 출력 결과 <br />";
  var_dump($num);  // 값과 데이터형을 출력
  echo "
.........[정수형으로 출력]<br /><br />"; $num += 1; // 이것은 $num에 +1을 한다는거에요 나중에 설명 나와요. echo "변수 \$num +1의 출력결과 <br />"; var_dump($num); echo "
.................[실수형으로 출력]"; ?>

위의 소스를 보면 기존 num 값에 +1을 하였더니 integer의 값의 한계를 넘어서버려서 float로 데이터형이 바뀌어버렸다..

아래는 결과

php image

제가 이렇게 정리하는것을 보면서 언제 초급을 땔까 고민하시는 분들이 계신다면 걱정하지 마세요.
이 강좌는 mysql php연동 및 로그인 기능까지 갑니다.

이미 한번 소스코딩 하면서 책 대충 한번 훑어보고 다시 한번 제가 책을 2회독 시작하면서 제대로 이해를 하기 위해 올리는 강좌입니다.

이렇게 남한테 설명한다 생각하고 배우면 더 잘 설명이 들어오더라고요..

혼자서 이제됐다하고 그냥 넘어가는 것보다는..

문자열 안에서 변수 해석

echo문 안에서 변수를 입력할때 주의해야 할점이 있다.

예를 들어

<?php
  $name = asimo;
  echo " $nameis a robot   <br />";
  echo " $name is a robot <br />";
  echo " {$name}is a robot ... ";
?>

아래는 결과

첫번째 문장에서 변수를 $nameis 로 인식을 하여서 $nameis 라는 변수가 선언되지 않아서 아무것도 표시가 되지 않았습니다.

2번째 줄은 정상이구요 띄어쓰기로 인해 정상적인 출력

세번째는 띄어쓰기는 하지 않았지만 {} 로 확실한 구분을 해주어서 출력이 되었습니다.

php image

에버디벨의 완성 :: 웹코딩 시작하기

안녕하세요.
에버디벨 운영자입니다.
여러분이 늘 이용해 주셔서 하루 5명 오는 사이트가 1000명이 오는 사이트가 되었고,
또 그 이유로 사이트를 운영을 멈추지 않아 저같은 평범한 사람이 책까지 쓸 수 있게 되었습니다.
여러분이 찾지 않았다면 진작 사이트 접었습니다.
저의 웹개발 경력 2년을 쏟아내어서 6개월의 집필, 8개월의 교정기간을 거쳐 [웹코딩 시작하기]가 출간했습니다.
웹코딩 시작하기는 HTML5를 시작으로 CSS3 -> jQuery를 학습합니다.
그리고 앞에서 배운 내용으로 간단한 소통사이트를 반응형으로 제작합니다.
보통의 책은 HTML5 + CSS3로 끝나고 혹은 HTML5 + CSS3 + jQery로 끝나지만 웹코딩 시작하기는 여기서 끝내지 않았습니다.
그 다음 바로 데이터베이스중 하나인 MySQL를 학습하고, 그 이후 PHP를 학습니다. 그리고 앞에서 만든 소통사이트에 회원가입, 로그인 기능은 기본으로 진행하며, 스크롤이벤트를 이용하여 스크롤을 내리면 AJAX를 작동시켜 게시물을 더 불러오는 기능을 구현하고 자기의 로그기록을 파일에 쓰기, 그 밖에 자신의 프로필사진, 커버사진 등록, 댓글 쓰기등의 기능을 적용합니다.
본서는 웹코딩을 처음하는 사람이 하나에서 끝나지 않고 처음부터 시작해 프로젝트까지 완성해가며 전체적으로 시스템이 어떻게 작동하는지 전반적으로 알게하기 위해 태어났습니다.
적어도 지구에서 가장 친절한 웹 입문서라고 생각하는 책입니다.
에버디벨로 부족하셨다면 웹코딩 시작하기를 추천합니다.

어제보다 나은 나, 오늘 보다 나을 내일의 나를 만드는 :: 웹코딩 시작하기

목차보기

종이책 구입하기

전자책 구입하기

PART 1. 프론트엔드 HTML5 + CSS3 + jQuery

CHAPTER 1. HTML5

1. HTML5 소개

2. 메타 태그

3. 텍스트 태그

4. 이미지 태그

5. 하이퍼링크 태그(a 태그)

6. 리스트 태그

7. form 태그

8. 공간 태그

9. video 태그

11. svg와 canvas

12. table 태그

CHAPTER 2. CSS3

1. CSS 소개

2. CSS를 적용하는 세 가지 방법

3. 선택자(selector)

4. 텍스트를 꾸미는 CSS 요소

5. 가로 길이와 세로 길이 조정하기

6. 텍스트가 영역을 벗어날 때

7. HTML 엘리먼트의 위치 변경하기

8. 배경 꾸미기

9. 외곽선 긋기

10. float와 clear

11. 박스의 바깥 여백 설정하기

12. 박스의 안쪽 여백 설정하기

13. CSS 리셋

14. 애니메이션

15. transform

16. transition

17. display

18. 반응형 웹

19. 반응형으로 간단한 레이아웃 만들기

20. SVG 태그

CHAPTER 3. jQuery

1. jQuery 시작하기

2. 셀렉터

3. 엘리먼트 보이기와 숨기기

4. 클릭했을 때 무언가 하기

5. 마우스 포인터를 요소 위에 올릴 때 무언가 하기

6. 제이쿼리로 CSS 적용하기

7. 변수 사용하기

8. HTML 엘리먼트에 있는 텍스트 변경하기

9. HTML 태그 제어하기

10. 애니메이션 기능

11. 엘리먼트에 클래스 추가, 삭제하기

12. 엘리먼트의 이동

13. 폼 태그의 값 조정

14. 포커스

15. this 사용하기

16. 연산자

17. 함수 만들기

18. 변수에 대해서

19. 글로벌 변수와 로컬 변수

20. 조건문

21. 반복문

22. 스크롤 이벤트

23. AJAX

24. canvas 태그(HTML5)

project 나의 첫 웹서비스 만들기

CHAPTER 1. 나의 첫 웹서비스 프로젝트 소개

CHAPTER 2. 나의 첫 웹서비스 만들기 프로젝트 - front end

1. 메인 페이지 만들기(index.html)

2. 나의 페이지 만들기(me.html)

3. 모두의 페이지 만들기(all.html)

PART 2. 백엔드 MySQL + PHP

CHAPTER 1. MySQL

1. 데이터베이스란?

2. MySQL 시작하기

3. 데이터베이스 만들기

4. 테이블

5. 필드의 데이터 크기와 데이터형 지정하기

6. 테이블 생성하기

7. 필드의 추가, 수정, 삭제

8. 테이블 삭제하기

9. 테이블에 데이터 입력하기

10. 데이터 불러오기

11. 데이터의 값을 변경, 삭제하기

12. 테이블 초기화

13. 2개 이상의 테이블 사용하기(JOIN)

14. 집계함수

15. 그룹별 집계

16. 출력 결과의 정렬

17. 불러올 레코드 수 지정하기

18. 2개 이상의 테이블을 묶어 사용하기

19. 쿼리문 안의 쿼리문 서브쿼리

20. 특정 필드에 같은 값을 넣지 않는 방법

21. 서로 다른 필드의 값을 합쳐서 출력하기

22. 검색을 더욱 빠르게 하는 인덱스

CHAPTER 2. PHP

1. PHP 소개

2. 출력문

3. 주석

4. 변수

5. 연산자

6. 배열>

7. 데이터형

8. 조건문

9. 반복문

10. 함수

11. 함수 만들기

12. POST와 GET

13. 기능의 사물화

14. 코드의 재활용

15. PHP와 MySQL의 연동

16. 상수

17. 정규 표현식

18. 파일 업로드

19. 디렉터리 함수

20. 파일 함수

21. Anchor 태그의 ping 속성과 AJAX

22. 쿠키와 세션

23. 객체지향 프로그래밍

project 나의 첫 웹서비스 만들기

CHAPTER 3. 나의 첫 웹서비스 만들기 프로젝트 - back end

3-1. 회원가입 기능

3-2. 로그인, 로그아웃 기능

3-3. 게시물 등록하기

3-4. 게시물 불러오기

3-5. 댓글 등록하기

3-6. 댓글 불러오기

3-7. 게시물 공감하기

3-8. 모두의 페이지

3-9. 포토 업로드 기능

3-10. 나의 로그 만들기

강좌로 돌아가기