[PHP] PHP 문법

최더디·2020년 12월 2일
2

PHP 시작 문법


<?php
...
?>

php engine에게 "지금부터 php문법이 시작된다."라고 알려주는 문법
지금부터 시작되는 문법은 php 문법에 따라 해석해야한다는 걸 알려주는 문법

출력 echo


화면에 출력해주는 역할 (= print도 가능)

<?php
echo "hello world";
print "hello world";
?>

; (세미콜론)


하나의 명령이 끝날 때 반드시 ;(세미콜론)을 붙여줘야 한다.

하나의 명령이 끝났다고 해주는 문법 (안쓰면 오류 발생)

데이터 형식 확인 var_dump()


데이터 형식을 보여주는 문법

var_dump(6)             #result : int(6)
var_dump(5.1)           #result : float(5.1)
var_dump("Hello World") #result : string(11) "Hello World"

데이터 타입 확인(gettype) & 지정(settype)


gettype() 을 통해 데이터 타입을 확인할 수 있음

settype() 을 통해 데이터 타입을 지정할 수 있음

<html>
    <body>
        <?php
        $a = 100;
        echo gettype($a);        #result : integer

				settype($a, 'double');   #type 지정
				echo gettype($a);        #result : double
        ?>
    </body>
</html>

문자열 결합


문자열과 문자열 사이에 .(점) 을 사용

<?php
	echo "hello"."world";
?>

변수 '$'


$ 를 통해 변수를 정의

<?php
$a = 1;
echo $a+1;    #result : 2
?>

가변변수 '$$'


$$ 를 통해 가변변수를 설정
변수의 이름 조차도 변경할 수 있음

<html>
    <body>
        <?php
        $title = 'subject';
        $$title = 'PHP totorial';     # $subject = 'PHP tutorial'; 과 같은 의미
        echo $title;                  # result : subject
        echo '<br/>';
        echo $subject;                # result : PHP tutorial
        ?>
    </body>
</html>

주석 '#'


#(샾) 을 사용하면 한 줄 주석처리 가능
/* */ 을 통해 여러 줄 주석처리 가능

<?php
#한줄 주석

/*
여러 줄 주석
*/
?>

사용자 정의 상수 'define()'


  • 상수는 변하지 않는 값이다.
  • define을 통해 상수를 지정할 수 있다.
  • 첫번째 인자 : 상수의 이름
  • 두번째 인자 : 상수의 값
  • 상수는 한번 저장되면 변경할 수 없다.
  • 상수는 대문자로 정의하는게 관습이다.
<html>
	<body>
		<?php
	 	define('TITLE', 'PHP Tutorial');
	 	echo TITLE;
	 	define('TITLE', 'JAVA Tutorial');     #Error !
	 	?>
	</body>
</html>

비교 연산자


  • 비교 연산자의 결과는 true(참) OR false(거짓) 중 하나이다.
    ==, !=, > , <, >=, <=, ===
  • ===는 좌항과 우항이 정확하게 같다는 의미다.
    ==와의 차이점은 ==이 형변환의 결과를 비교 하지만, ===는 양쪽 항이 데이터 형식까지 정확하게 동일해야 같은 것으로 인정한다는 점이다.
<html>
    <body>
        <?php
        var_dump(1==2);          # result : bool(false)
        var_dump(1==1);          # result : bool(true)
        var_dump("one"=="two");  # result : bool(false)
        var_dump("one"=="one");  # result : bool(true)

				var_dump(1!=2);          # result : bool(true)
        var_dump(1!=1);          # result : bool(false)
        var_dump("one"!="two");  # result : bool(true)
        var_dump("one"!="one");  # result : bool(false)
        ?>
    </body>
</html>

조건문


if, else, else if 를 사용

<?php
if (false){
    echo 1;
} else if (false){
    echo 2;
} else if (false){
    echo 3;
} else {
    echo 4;
}
#result : 4
?>

응용1 (입력란 확인하기)


id 입력란에 egoing을 입력하게 되면 right을 출력할 것이고,

id 입력란에 egoing이 아닌 다른 문자를 입력하게 되면 wrong을 출력할 것이다.

<!--test.html-->
<html>
<body>
    <form method="get" action="test2.php">
        <input type="text" name="id" />
        <input type="submit" />
    </form>
</body>
</html>
<!--test2.php-->
<?php
if($_GET['id'] === 'egoing'){
    echo 'right';
} else {
    echo 'wrong';
}
?>

응용2 (조건문의 중첩)


id는 egoing, password는 111111 이여야만 right를 출력하는 코드

<!--test.html-->
<html>
<body>
    <form method="post" action="test2.php">
        id :  <input type="text" name="id" />
        password : <input type="text" name="password" />
        <input type="submit" />
    </form>
</body>
</html>
<!--test2.php-->
<?php
if($_POST['id'] === 'egoing'){
    if($_POST['password'] === '111111'){
        echo 'right';
    } else {
        echo 'password wrong';
    }   
} else {
    echo 'id wrong';
}
?>

논리 연산자 (and, or, !)


위의 조건문 응용2에서 test2.php를 이와 같이 수정하게 되면 조건문 중첩을 사용하지 않고 같은 값을 출력할 수 있음

<?php
if($_POST['id'] === 'egoing' && $_POST['password'] === '111111'){
    echo 'right';
} else {
    echo 'wrong';
}
?>

반복문 (while, for, break, continue)


<?php
while(조건){
    코드
    코드
}
?>

#example
<?php
$i = 0;
while($i < 5){
    echo 'coding everybody';
    $i += 1;
}
?>
<?php
for(초기화; 반복 지속 여부; 반복 실행){
    코드;
}
?>

#example
<?php
for($i = 0; $i < 10; $i++){
    echo 'coding everybody'.$i."<br />";
}
?>

배열


[](대괄호)를 사용해 배열을 만든다.

count()를 통해 배열의 크기를 알 수 있음.

<?php
$member = ['egoing', 'k8805', 'sorialgi'];

for($i=0; $i<count($member); $i++){
    echo $member[$i];
    echo '<br />';
}
?>
profile
focus on why

2개의 댓글

comment-user-thumbnail
2022년 1월 22일

$$ <- 비권장사항이고 절대 쓰지마세요

1개의 답글