include 와 required 의 차이는 오류가 없을 때의 결과에서는 차이가 없다.

둘 다 외부의 php 파일을 읽어 들어온다는 점에서는 같은 역할을 한다.

그렇다면 어떤 차이점이 있는 지 한번 알아보았다.

- include는 파일을 인클루드한다.

만약 파일이 없으면 경고(E_WARNING)가 발생하지만 스크립트의 작동은 멈추지 않는다.

- require는 include 처럼 파일을 인클루드하지만, 만약 파일이 없으면 에러(E_ERROR)가 발생하고 스크립트의 작동이 멈춘다.

- include_once는 스크립트의 실행 도중 같은 파일이 인클루드 된 적이 없는 경우에만 파일을 인클루드한다.

스크립트의 실행 도중 같은 파일이 인클루드 된 적이 있는 경우 무시.

만약 파일이 없으면 경고(E_WARNING)가 발생하지만 스크립트의 작동은 멈추지 않는다.

include('file.php'); // 인클루드 include('file.php'); // 인클루드 include_once('file.php'); // 다시 인클루드 하지 않고 무시

- require_once는 include_once 처럼 같은 파일이 인클루드 된 적이 없는 경우에만 파일을 인클루드하지만, 만약 파일이 없으면 에러(E_ERROR)가 발생하고 스크립트의 작동이 멈춘다.

require('file.php'); // 인클루드 require('file.php'); // 인클루드 require_once('file.php'); // 다시 인클루드 하지 않고 에러


'PHP' 카테고리의 다른 글

php MySQL DB가져오기  (0) 2019.09.12
php MySQL 연결  (0) 2019.09.12
windows10 환경 APM설치 및 오류 수정  (0) 2019.09.12
php MySQL다루기  (0) 2019.09.12
php 세션  (0) 2019.09.12

필자는 가상환경으로 우분투를 돌리고 있는 상태이다.

고로 느리다.

정말 느리다.

화가 날 정도로 느리다.

그래서 windows 환경에서 코드를 작성하고 우분투로 넘겨주기로 하여 windows에 apm을 설치하려고 한다.

아래는 apm을 설치하는데 참고 하기 좋은 사이트이다.

https://yongku.tistory.com/entry/%EC%9C%88%EB%8F%84%EC%9A%B0-10Windows-10-%EC%9A%B4%EC%98%81%EC%B2%B4%EC%A0%9C%EC%97%90%EC%84%9C-APMApache-PHP-MySQL-%EC%84%A4%EC%B9%98-%EB%B0%8F-%EC%9B%B9%EC%84%9C%EB%B2%84-%EA%B5%AC%EC%B6%95%ED%95%98%EA%B8%B01-Apache-%EC%84%A4%EC%B9%98

Apache2 오류 시

☞ Could not reliably determine the server's fully qualified domain name 이라는 오류가 발생하면

httpd.conf에 ServerName localhost를 추가해보면 될것이다.

☞ 파일경로(환경변수 path 등록 시)를 처음 사이트에 다운을 받으면 httpd-.....-... 이런식으로 되어있을 것이다.

그럴 때 하이픈을 다 빼주고 깔끔하게 만들어도 줘본다.

☞ 포트 오류시 ( 가상환경의 아파치와 겹칠 때)

(OS 10048)각 소켓 주소(프로토콜/네트워크 주소/포트)는 하나만 사용할 수 있습니다. : AH00072: make_sock: could not bind to address [::]:80

(OS 10048)각 소켓 주소(프로토콜/네트워크 주소/포트)는 하나만 사용할 수 있습니다. : AH00072: make_sock: could not bind to address 0.0.0.0:80

AH00451: no listening sockets available, shutting down

AH00015: Unable to open logs

포트를 변경해주면 된다. 방법은 아래와 같음

Listen에서 포트 번호 변경

httpd.conf

ServerName에서 포트 번호를 일치시켜줘서 열어본다.

PHP 오류시

httpd.exe: Syntax error on line 542 of C:/httpd/Apache24/conf/httpd.conf: Cannot load C:\\php7.3.3/php7apache2_4.dll into server: \xc1\xf6\xc1\xa4\xb5\xc8 \xb8\xf0\xb5\xe2\xc0\xbb \xc3\xa3\xc0\xbb \xbc\xf6 \xbe\xf8\xbd\xc0\xb4\xcf\xb4\xd9 이런 오류가 발생했을 때

만약 ThreadSafe 버전을 받았을 시 아래에 사이트에서 설치를 진행하면 된다.

https://www.microsoft.com/ko-KR/download/details.aspx?id=30679

만약 NonThreadSafe 버전을 받았다면(Windows에서는 2개로 나뉜다.) 아파치와 연동이 불가능 하기 때문에 ThreadSafe버전으로 다운 받아야한다고 한다.

MySQL 오류 시

☞ my.ini 파일이 없을 시

https://dev.mysql.com/downloads/mysql/

아마 설치하면 mysql디렉터리에 my.ini이 없을 것이다. 아마 다른 디렉터리에 있는 모양이다. (필자도 없어서 당황하여 구글링을 하여 보았다.)

주로 구버전에서는 my.ini이 나와 있다고 하는데

어쨌든, 설정 파일 확인하는 방법은 mysql 접속 후

아래 명령어 입력하면 확인 가능하다고 한다.

mysql> SHOW VARIABLES WHERE Variable_Name LIKE "%dir"

해답은 아래 사이트에서 찾았다. MySQL이 버전 업이 되고 나서 my.ini을 직접 만들어 줘야하고 그 까지 가는 데 셋팅이 많이 필요하다.

https://jimnong.tistory.com/614

여기서 installer를 받아서 server용을 설치하자.

설치했다면 경로 지정을 해줘야 cmd에서 쉽게 적을 수 있다.

아니면

여기에 mysql 전용 cmd가 있다.


'PHP' 카테고리의 다른 글

php MySQL 연결  (0) 2019.09.12
php (include,required)_(once)  (0) 2019.09.12
php MySQL다루기  (0) 2019.09.12
php 세션  (0) 2019.09.12
php 쿠키  (0) 2019.09.12

쿼리(Query)

PHP에서는 쿼리(query)를 사용하여 MySQL과 같은 데이터베이스에 작업을 요청할 수 있다.

쿼리(query)란 데이터베이스에 보내는 요청(request) 또는 질문이라고 이해할 수 있다.

예를 들어, 다음과 같은 쿼리는 Student 테이블에서 Name이라는 필드를 모두 선택해 줄 것입니다.

SELECT Name FROM Student;

어느 프레임워크, 언어든지 간에 데이터베이스를 연결할 수 있는 방법이 있다.

php또한 데이터베이스를 연결하여 사용하는데 php7.0.0 미만 버전까지는 MySQL extension 이라는 API를 이용하였다고 한다.

-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------

API(Application Programming Interface, 응용 프로그램 프로그래밍 인터페이스)는 응용 프로그램에서 사용할 수 있도록, 운영 체제나 프로그래밍 언어가 제공하는 기능을 제어할 수 있게 만든 인터페이스를 뜻한다. -위키피디아 백과사전 참고

아래는 API관련 설명 블로그

https://medium.com/@dydrlaks/api-%EB%9E%80-c0fd6222d34c

-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------

현재는

· MySQL improved extension(MySQLi extension)

· PHP Data Objects(PDO)

이렇게 API를 이용한다고 한다.

필자는 PDO를 사용할려고한다. 다음은 PDO Installation site이다.

http://php.net/manual/en/pdo.installation.php

여기는 우분투에 pdo_mysql을 설치 하는 방법이라고 한다.

https://zetawiki.com/wiki/%EC%9A%B0%EB%B6%84%ED%88%AC_pdo_mysql_%EC%84%A4%EC%B9%98

그런데 아무래도 우분투에서 php를 설치하는 도중에 필자는 설치를 한거 같다. 설치가 되어있다.


'PHP' 카테고리의 다른 글

php (include,required)_(once)  (0) 2019.09.12
windows10 환경 APM설치 및 오류 수정  (0) 2019.09.12
php 세션  (0) 2019.09.12
php 쿠키  (0) 2019.09.12
php form검증  (0) 2019.09.12

세션이란?

세션(session)이란 웹 사이트의 여러 페이지에 걸쳐 사용되는 사용자 정보를 저장하는 방법을 의미.

사용자가 브라우저를 닫아 서버와의 연결을 끝내는 시점까지를 세션이라고 한다.

쿠키는 클라이언트 측에 저장이 되지만, 세션은 데이터가 서버측에 저장이 되고 세션의 키값만 클라이언트 측에서 저장을 한다.

브라우저는 클라이언트 측의 키 값을 이용하여 서버측에 저장되어 있는 데이터를 이용한다.

세션 시작

session_start();

session_start() 함수는 세션 아이디가 이미 존재하는지를 확인하고, 존재하지 않으면 새로운 아이디를 만든다.

만약 이미 존재하는 세션 아이디가 있을 때는 원래 있던 세션 변수를 다시 불러와서 사용할 수 있도록 한다.

세션 아이디는 웹 서버에 의해 무작위로 만들어진 숫자이다.

이 세션 아이디는 세션이 유지되는 동안 클라이언트 측에 저장되며, 세션 변수를 등록하는 키로 사용된다.

웹 서버에서는 클라이언트로부터 받아온 세션 아이디를 가지고, 해당 아이디에 대응되는 세션 변수에 접근할 수 있다.

세션 변수 등록

$_SESSION["city"] = "부산"; // 세션 변수의 등록 $_SESSION["gu"] = "해운대구"; echo "세션 변수가 등록되었습니다!";

션이 생성되고 나면 세션 변수를 수퍼 글로벌인 $_SESSION 배열에 등록할 수 있다.

이때 세션 변수의 이름이 키값이 되며, 이 내용은 서버 측에 저장된다.

$_SESSION["키값(클라이언트 측 저장)"] = "내용(서버 측 저장)";

등록된 세션 변수는 등록을 해지하지 않는 한 세션이 끝날 때까지 유지된다.

세션 변수에 접근하기

생성된 세션 변수는 $_SESSION["세션변수이름"]으로 접근할 수 있다.

echo "제가 살고 있는 도시는 {$_SESSION['city']}입니다.<br>"; echo "그 중에서도 {$_SESSION['gu']}에 살고 있습니다.<br>"; print_r($_SESSION); // 모든 세션 변수의 정보를 연관 배열 형태로 보여줌.

세션 변수 등록 해제

unset() 함수를 사용하면, 특정 이름의 세션 변수만을 해지할 수 있다.

현재 등록된 모든 세션 변수를 해지하고자 할 때에는 session_unset() 함수를 사용하면 된다.

또한, 세션을 자체를 완전히 종료하려면 session_destroy() 함수를 사용하여 세션 아이디를 삭제하면 된다.

// 특정 세션 변수의 등록 해지 /* if(!isset($_SESSION["city"])) { echo "{$_SESSION['city']} 세션 변수가 삭제되었습니다."; unset($_SESSION["city"]); } else { echo "해당 세션 변수가 등록되어 있지 않습니다."; } */ session_unset(); // 모든 세션 변수의 등록 해지 session_destroy(); // 세션 아이디의 삭제 echo "모든 세션 변수가 등록 해지되었으며, 세션 아이디도 삭제되었습니다.";


'PHP' 카테고리의 다른 글

windows10 환경 APM설치 및 오류 수정  (0) 2019.09.12
php MySQL다루기  (0) 2019.09.12
php 쿠키  (0) 2019.09.12
php form검증  (0) 2019.09.12
php 와 html form(html과의 교류)  (0) 2019.09.12

쿠키란 ?

웹사이트에 접속했을 때 내가 했던 기록들이 마치 과자를 먹고 나면 남은 부스러기 처럼 남아 있어서 붙여진 이름이다. 웹사이트는 클라이언트 측 컴퓨터에 정보를 저장해두고 필요할 때 마다 꺼내 쓴다.( 예로 장바구니 같은 기능에서 많이 쓰인다.) 편리하지만 편리한만큼 보안에는 취약해진다는 단점이 있다.

쿠키 생성

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

setcookie() 함수의 매개변수 중에서 쿠키 명을 제외한 매개변수는 모두 옵션.

쿠키는 명시된 지속 시간이 지나면 무효가 되며, 지속 시간을 전달하지 않으면 브라우저가 닫히기 전까지 계속 유효.

또한, 사용자가 직접 삭제하지 않는 한 브라우저에 계속 남아 있다.

쿠키를 생성할 때 유효한 주소와 경로를 매개변수로 전달할 수 있다.

만약 HTTPS 프로토콜에서 사용하려면 secure 값을 true로,

HTTP 프로토콜에서만 사용하도록 하려면 httponly 값을 true로 설정하면 된다.

$_cookie 예제)

<?php $cookieName = "city"; //default 값으로 넣어준다. $cookieValue = "서울"; setcookie($cookieName, $cookieValue, time()+60, "/"); // 쿠키가 60초 간 지속됨. ?> ... <?php if(!isset($_COOKIE[$cookieName])) { // 해당 쿠키가 존재하지 않을 때 echo "{$cookieName}라는 이름의 쿠키는 아직 생성되지 않았습니다."; } else { // 해당 쿠키가 존재할 때 echo "{$cookieName}라는 이름의 쿠키가 생성되었으며, 생성된 값은 '".$_COOKIE[$cookieName]."'입니다."; } ?>

쿠키 삭제

<?php $cookieName = "city"; $cookieValue = "서울"; setcookie($cookieName, $cookieValue, time()-60, "/"); // 쿠키를 삭제함. unset($_COOKIE["city"])와 같음. ?> ... <?php echo "{$cookieName}라는 이름의 쿠키가 삭제되었습니다."; ?>


'PHP' 카테고리의 다른 글

php MySQL다루기  (0) 2019.09.12
php 세션  (0) 2019.09.12
php form검증  (0) 2019.09.12
php 와 html form(html과의 교류)  (0) 2019.09.12
php 제어문  (0) 2019.09.12

HTML form 요소는 텍스트 입력, 체크박스, 라디오 버튼 등 다양한 input 요소를 포함할 수 있다.

이러한 input 요소별로 사용자가 입력한 데이터가 적합한 데이터인지를 검사하는 검증 규칙을 설정할 수 있다.

<form method="post" action="<?php echo htmlspecialchars($_SERVER["PHP_SELF"]);?>"> ID : <input type="text" name="ID"><span class="alert"> * <?php echo $IDMsg ?></span><br> PASSWARD : <input type="password" name="password"><span class="alert"> * <?php echo $passwordMsg ?></span> <br><br> 이름 : <input type="text" name="name"><span class="alert"> * <?php echo $nameMsg ?></span> <br> 성별 : <input type="radio" name="gender" value="female">여자 <input type="radio" name="gender" value="male">남자 <span class="alert"> * <?php echo $genderMsg ?></span> <br><br> 직위 : <input type="radio" name="position" value="Professor">교수 <input type="radio" name="position" value="Student">학생 <span class="alert"> * <?php echo $positionMsg ?></span> <br><br> 학번 : <input type="text" name="student_id"><span class="alert"> * <?php echo $student_idMsg ?></span> <br><br> 이메일 : <input type="text" name="email"><span class="alert"> * <?php echo $student_emailMsg ?></span> <br><br> 자기소개 : <textarea name="comment"></textarea> <br><br> <input type="submit" value="전송"> </form>

여기서 <?php echo htmlspecialchars($_SERVER["PHP_SELF"]);?>

---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------

· $_SERVER는 PHP에서 제공하는 슈퍼 글로벌로 인덱스로 "PHP_SELF"를 사용하면, 현재 실행 중인 PHP 스크립트의 파일 이름을 반환.

· htmlspecialchars() 함수는 인수로 전달받은 문자열에 포함된 특수 문자들을 HTML 엔티티로 변환.(이 함수를 사용함으로써 입력 문자열에 사용자가 안 좋은 의도로 HTML 코드를 삽입하는 것을 막을 수 있다.)

---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------

PHP 코드를 action 속성값으로 사용하면, 해당 form 요소로 입력받은 데이터를 다른 페이지로 전송하지 않고 현재 페이지로 보내게 된다.

form 필수 입력 검증/입력 형식 검증

<?php $nameMsg = $IDMsg = $passwordMsg = $genderMsg = $positionMsg = $student_idMsg = ""; $name = $ID = $password = $gender = $position = $student_id = $email = $comment = ""; if ($_SERVER["REQUEST_METHOD"] == "POST") { //ID에 대한 필수 입력 및 입력 형식 검증 if (empty($_POST["ID"])) { $IDMsg = "ID를 입력해 주세요."; } else { $ID = $_POST["ID"]; } if (!preg_match("/^[a-zA-Z1-99999999]*$/", $ID)) { $IDMsg = "영문자와 숫자만 가능합니다!"; } //passward에 대한 필수 입력 검증 if (empty($_POST["password"])) { $passwordMsg = "비밀번호를 입력해 주세요."; } elseif($_POST["password"]<10) { $passwordMsg = "비밀번호를 10자리 이상으로 정해주세요."; } else { $password = $_POST["password"]; } // 이름에 대한 필수 입력 및 입력 형식 검증 if (empty($_POST["name"])) { $nameMsg = "이름을 입력해 주세요."; } else { $name = $_POST["name"]; } if (!preg_match("/^[a-zA-Z가-힣 ]*$/", $name)) { $nameMsg = "영문자와 한글만 가능합니다!"; } // 성별에 대한 필수 입력 검증 if (!isset($_POST["gender"]) || $_POST["gender"]==false) { $genderMsg = "성별을 선택해 주세요"; } else { $gender = $_POST["gender"]; } //직책에 대한 필수 입력 검증 if (!isset($_POST["position"]) || $_POST["position"]==false){ $positionMsg = "직책을 선택해 주세요."; }else{ $position = $_POST["position"]; } //학번에 대한 필수 입력 검증 if (empty($_POST["student_id"])) { $student_idMsg = "학번을 입력해 주세요."; } else { $student_id = $_POST["student_id"]; } //이메일에 대한 입력 형식 검증 if (empty($_POST["email"])) { $emailMsg = "이메일을 입력하여 주세요."; } else { $email = $_POST["email"]; } if (!filter_var($email, FILTER_VALIDATE_EMAIL)) { $emailMsg = "이메일을 정확히 입력해 주세요!"; } $comment = $_POST["comment"]; } ?>

위의 예제에서 사용된 $_SERVER["REQUEST_METHOD"]는 페이지에 접근하기 위해 사용된 HTTP 요청 방식을 반환한다.

따라서 위의 예제는 POST 방식의 HTTP 요청에서만 동작.

empty() 함수나 isset() 함수로 검사하여 필수 입력에 해당하는 데이터가 비어있다면 특정 메시지를 출력한다.

PHP에서 사용할 수 있는 검증 필터는 다음과 같다.

검증 필터

설명

FILTER_VALIDATE_BOOLEAN

해당 변수가 "1", "true", "on", "yes"인 경우에만 true를 반환하고, 나머지는 전부 false를 반환함.

FILTER_VALIDATE_EMAIL

해당 변수가 유효한 이메일 주소인지를 검증함.

FILTER_VALIDATE_FLOAT

해당 변수가 float 타입인지를 검증함.

FILTER_VALIDATE_INT

해당 변수가 int 타입인지를 검증함.

FILTER_VALIDATE_IP

해당 변수가 유효한 IP 주소인지를 검증함.

FILTER_VALIDATE_MAC

해당 변수가 유효한 MAC 주소인지를 검증함.

FILTER_VALIDATE_REGEXP

해당 변수를 펄 호환 정규 표현식(Perl-Compatible Regular Expression, PCRE)으로 검증함.

FILTER_VALIDATE_URL

해당 변수가 유효한 URL 주소인지를 검증함.


'PHP' 카테고리의 다른 글

php 세션  (0) 2019.09.12
php 쿠키  (0) 2019.09.12
php 와 html form(html과의 교류)  (0) 2019.09.12
php 제어문  (0) 2019.09.12
php 배열  (0) 2019.09.12

html을 조금 살펴 볼 필요가 있겠다.

---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------

● form 요소

웹 페이지에서는 form 요소를 사용하여 사용자로부터 입력을 받을 수 있습니다.

또한, 사용자가 입력한 데이터를 서버로 보낼 때에도 form 요소를 사용합니다.

form 요소는 다음과 같은 문법으로 사용합니다.

<form action="처리할페이지주소" method="get|post"></form>

action 속성은 입력받은 데이터를 처리할 서버 상의 스크립트 파일의 주소를 명시합니다.

이렇게 전달받은 데이터를 처리하는 스크립트 파일을 폼 핸들러(form-handler)라고 합니다.

method 속성은 입력받은 데이터를 서버에 전달할 방식을 명시합니다.

따라서 사용자가 form 요소를 통해 입력한 데이터는 action 속성에 명시된 위치로 method 속성의 방식을 통해 전달됩니다.

● method 속성

method 속성을 통해 명시할 수 있는 form 요소의 전달 방식은 GET 방식과 POST 방식으로 나눠집니다.

GET 방식은 주소에 데이터(data)를 추가하여 전달하는 방식입니다.

데이터가 주소 입력창에 그대로 나타나며, 전송할 수 있는 데이터의 크기 또한 제한적입니다.

따라서 검색 엔진의 쿼리(query)와 같이 크기가 작고 중요도가 낮은 정보를 보낼 때 주로 사용합니다.

POST 방식은 데이터(data)를 별도로 첨부하여 전달하는 방식입니다.

데이터가 외부에 드러나지 않으며, 전송할 수 있는 데이터의 크기 또한 제한이 없습니다.

따라서 보안성 및 활용성이 GET 방식보다 좋습니다.

● input 요소

1. 텍스트 입력(text)

2. 비밀번호 입력(password)

3. 라디오 버튼(radio)

4. 체크박스(checkbox)

5. 파일 선택(file)

6. 선택 입력(select)

7. 문장 입력(textarea)

8. 버튼 입력(button)

9. 전송 버튼(submit)

10. 필드셋(fieldset)

---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------

아래와 같은 html 문서가 있다고 할 때 action 부분의 request.php로 method가 post이므로 정보를 보낸다라고 보면된다.

<html> <body> <form action="request.php" method="post"> 이름 : <input type="text" name="name"><br> 이메일 : <input type="text" name="email"><br> <input type="submit"> </form> </body> </html>

그럼 submit 버튼으로 보내어진 정보는 request.php로 가공할 수 있게 된다.

$name = $_POST["name"]; $email = $_POST["email"]; echo $name."님의 이메일 주소는 ".$email."입니다.";

이렇게 말이다.

이 때 html에서 php로 보낼 때는 get과 post로 데이터를 문자열로 담아 보낼 수 있다.

다만 get은 주소에 데이터를 실어서 보내므로 당연히 보안에 취약할 수 있게 되겠다.

예를 들면 vue로 영화사이트를 만들 때 영화 품번을 url로 담아서 보냈던 것처럼 말이다.


'PHP' 카테고리의 다른 글

php 쿠키  (0) 2019.09.12
php form검증  (0) 2019.09.12
php 제어문  (0) 2019.09.12
php 배열  (0) 2019.09.12
php 클래스  (0) 2019.09.12

조건문

if ~ elseif ~ else

if (조건식) { 조건식의 결과가 참일 때 실행하고자 하는 명령문; } //ex) $num_01 = 30; $num_02 = 20; if ($num_01 == $num_02) { echo "{$num_01}과 {$num_02}은 같은 수입니다."; } elseif ($num_01 < $num_02) { echo "{$num_01}은 {$num_02}보다 작은 수입니다."; } else { // $num_01 > $num_02 echo "{$num_01}은 {$num_02}보다 큰 수입니다."; }

삼항연산자

조건식 ? 반환값1 : 반환값2 //ex) $num_01 = 15; $num_02 = 8; $result = ($num_01 > $num_02) ? $num_01 : $num_02; echo "둘 중에 더 큰수는 {$result}입니다.";

참고 !! 문자열연산자 ( . )

문자를 합쳐 줄 때 사용하는 연산자. echo에서는 쉼표( , )로도 가능 하다.

$str_01 = "PHP 수업"; $str_02 = "에 오신것을 환영합니다!"; echo "두 문자열을 합친 문자열은 '".($str_01.$str_02)."'입니다.<br>"; echo $str_01, $str_02;

switch 문

switch (조건 값) { case1: 조건 값이 값1일 때 실행하고자 하는 명령문; break; case2: 조건 값이 값2일 때 실행하고자 하는 명령문; break; ... default: 해당 case가 없을 때 실행하고자 하는 명령문; break; }

반복문

while

while (조건식) { 조건식의 결과가 참인 동안 반복적으로 실행하고자 하는 명령문; } //ex) $i = 0; while ($i < 5) { echo ($i++)."<br>"; }

do while

do { 조건식의 결과가 참인 동안 반복적으로 실행하고자 하는 명령문; } while (조건식); //ex) $i = 0; $j = 0; while ($i > 5) { echo "변수 i의 값은 ".(++$i)."입니다.<br>"; } do { // do / while문은 조건식과 상관없이 반드시 한 번은 루프를 실행함 echo "변수 j의 값은 ".(++$j)."입니다.<br>"; } while ($j > 5);

for

for (초기식; 조건식; 증감식) { 조건식의 결과가 참인 동안 반복적으로 실행하고자 하는 명령문; } //ex) for ($i = 0; $i < 5; $i++) { echo "{$i}<br>"; }

foreach

foreach (배열 as 값을저장할변수) { 실행하고자 하는 명령문; } //ex) $arr = array(2, 4, 6, 8); foreach ($arr as $value) { echo "변수 \$value의 현재값은 {$value}입니다.<br>"; } unset($value); //키 값을 저장하는 방법 $arr = array( "둘" => 2, "넷" => 4, "여섯" => 6, "여덟" => 8, ); foreach ($arr as $key => $value) { echo "배열 \$arr에서 키값 '{$key}'에 대한 값은 {$value}입니다.<br>"; } unset($value);

continue

$exceptNum = 4; for ($i=0; $i<=100; $i++) { if ($i % $exceptNum == 0) continue; echo "{$i} "; }

break

$sum = 0; $startNum = 1; $endNum = 100; $i = $startNum; while (true) { // 일부러 만든 무한 루프임. $sum += $i; if ($i == $endNum) break; $i++; } echo "{$startNum}에서부터 {$endNum}까지 더한 값은 {$sum}입니다.";

php 대체제어문

제어문 시작을 ' : '콜론으로, 끝을 endif, endswitch, endfor, endwhile, endforeach 로 해주면 된다.

<?php $var = 5; ?> <?php if ($var > 6): ?> 변수의 값은 6보다 큽니다. <!-- 이 부분은 HTML 구문임 --> <?php elseif ($var == 6): ?> 변수의 값은 6입니다. <!-- 이 부분은 HTML 구문임 --> <?php elseif ($var < 6): ?> 변수의 값은 6보다 작습니다. <!-- 이 부분은 HTML 구문임 --> <?php endif; ?>


'PHP' 카테고리의 다른 글

php form검증  (0) 2019.09.12
php 와 html form(html과의 교류)  (0) 2019.09.12
php 배열  (0) 2019.09.12
php 클래스  (0) 2019.09.12
php 함수  (0) 2019.09.12

배열에 관해서 알아보자

php에서의 배열 또한 인덱스와 값으로 이루어져 있다.

이것을 map이라고 하는데

$배열이름 = array();

이런식으로 선언을 하게 된다.

php에서의 배열은 숫자 인덱스를 지원하고 , 더 나아가 문자열로 된 인덱스도 지원한다고 한다.

이것을 연관배열이라고 하는데 다음과 같다.

$배열이름[인덱스];

php에서는 배열을 생성할 때 크기 제한을 두지 않으므로 문자열로 인덱스를 지정해두면 그 값을 찾아내기가 편할 것이다. 예를 들면 아이디와 비밀번호 처럼 말이다.

$array = array(); // 배열 생성 $array["ID"] = "oh"; // 연관 배열 요소 추가 $array["PASSWARD"] = "1234";

연관배열은 키와 값 사이에 '=>' 이 기호를 넣어주면 배열선언과 동시에 요소를 넣어줄 수 있다.

$array = array("ID" =>"oh"); // 배열 생성과 동시에 요소추가 $array["PASSWARD"] = "1234";

그리고 배열은 선언이 필요없이 바로 요소를 정하여 주면 php에서 알아서 배열을 생성 후 요소를 넣어준다고 한다.

$array["ID"] = "oh"; $array["PASSWARD"] = "1234";


'PHP' 카테고리의 다른 글

php 와 html form(html과의 교류)  (0) 2019.09.12
php 제어문  (0) 2019.09.12
php 클래스  (0) 2019.09.12
php 함수  (0) 2019.09.12
php 변수, 상수, 타입  (0) 2019.09.12

php의 클래스 선언 방식이다.

class 클래스이름 { 클래스의 프로퍼티과 메소드의 정의; }

php라서 클래스 선언 방식이 다를 줄 알았는데 c++이나 java와 유사한 것 같다.

마찬가지로 생성자, 소멸자를 가지고 각각 __constructor, __destrctor 로 표현한다.

class 클래스이름 { function __construct(매개변수1, 매개변수2, ...) { 생성자가 호출될 때 실행될 코드; } }
class 클래스이름 { function __desturct() { 소멸자가 호출될 때 실행될 코드; } }

인스턴스 생성 방법

$객체이름 = new 클래스이름(인수1, 인수2, ...);

클래스 맴버 접근 방법

$객체이름->프로퍼티이름; $객체이름->메소드이름;

인스턴스 자신 안에 있는 프로퍼티에 접근 하고 싶을 때 사용하는 $this!+

$this->프로퍼티이름;

private , protected, public 이 있으므로 접근제어, 정보은닉 또한 가능하다.


'PHP' 카테고리의 다른 글

php 제어문  (0) 2019.09.12
php 배열  (0) 2019.09.12
php 함수  (0) 2019.09.12
php 변수, 상수, 타입  (0) 2019.09.12
php 문법과 기초  (0) 2019.09.12

+ Recent posts