Language/PHP

[PHP] PHP문법 총정리

기록하는 습관. 2024. 6. 3. 01:44

문법 공부의 가장 좋은 방법은...

php.net를 참고하기..!!



[작성중............]


STEP1. ✅PHP 7 기준 문법정리

1. 변수의 선언

<?php
    $a = 1;
?> 

// *------ ?>는 생략이 가능하다. ------*
  • 변수 선언시에는 $를 사용합니다.
  • 변수는 저장되는 값에 따라 추론이 되어집니다.
  • 변수는 대소문자를 구분합니다.

2. echo의 사용

<? php
    $txt = "PHP";

    echo = 'I love {$txt}'; // (==) echo 'I love $txt';

/*
    output => I love PHP
*/

3. 변수의 범위

<?php

$x = 5;
function myTest() {
    echo "변수 x의 값 :: {$x}"
}

myTest();

// ouput => 변수 x의 값 ::

PHP에서는 위의 코드는 찍히지 않습니다. 위의 값을 사용하기 위해서는 global 키워드를 이용해야합니다.
예시는 아래와 같습니다.


<?php

$x = 5;
function myTest() {
    global $x;
    $x++;
    echo "변수 x의 값 :: {$x} <br>";
    }

myTest();
echo("한번 더 찍어보기 :: {$x}");

/*
    [output]
    변수 x의 값 :: 6
    한번 더 찍어보기 :: 6
*/ 

4. 문자열 형태 확인 함수 : var_dump()

<?php

$x = 3333;
$y = 3333.1;
$z = "111";

var_dump($x); // int(3333);
var_dump($y); // float(3333.1)
var_dump($z); // string(3) "111";

string(3) "111"에서 3은 3byte를 의미합니다.


5. 문자열의 길이 반환 함수 : strlen()

<?php

$x = strlen("한글");

echo $x; // 6

strlen()은 문자열의 바이트 수를 출력합니다.
한글은 한 글자에 3바이트 이므로 위 코드는 6바이트가 출력됩니다.


6. 영어의 단어 수 세어주는 함수 : str_word_count()

<?php

$word = str_word_count("Hello World");

echo $word; // 2

해당 함수는 영어만 단어수를 세어줍니다. 한글은 동작하지 않습니다.


7. 문자열 뒤집는 함수 : strrev()

<?php

echo strrev("Hello world!");  // !dlrow olleH

strrev()는 문자열을 뒤집어 줍니다. 영어는 동작하지만 한글은 동작하는지 확인해 볼 필요가 있습니다.
header('Content-Type: text/html; charset=UTF-8');를 줘봤지만 문자열이 깨지는 현상이 있습니다.


8. 문자열 내에서 문자를 검색하는 함수 : strpos()

<?php
echo strpos("Hello world", "world"); // 6

Hello world에서 world를 검색합니다. 검색 결과가 있다면 시작되는 첫 번째 인덱스 값을 출력합니다.
만약 검색결과가 없다면 아무것도 출력하지 않습니다. 더불어 H, o처럼 한 글자씩 검색도 가능합니다.

[실무사용]

실무에서는 email 검사에서 @가 있는지 없는지 약식으로 판별하는데 사용됩니다.


9. 문자열내 문자 바꾸기 함수 : str_replace()

<?php

$str = "나는 자랑스러운 미국인이다.";
echo str_replace("미국인", "한국인", $str); // 나는 자랑스러운 한국인이다.

10. 자료의 판별 함수 : is_int(), is_float() 등

<?php

$a = 33433;
$b = 331.1;
$c = "홍길동";
$d = true;

echo var_dump(is_int($a)); // bool(true)
echo is_int($a) // 1

echo var_dump(is_float($b)); // bool(true)
echo is_float($b); // 1

echo var_dump(is_string($c)); // bool(true)
echo is_string($c); // 1

echo var_dump(is_bool($d)); // bool(true)
echo is_bool($d); // 1

11. 값의 형태가 숫자인지 판별 함수 : is_numeric()

<?php

$a = "안녕하세요";
$b = 11;
$c = "2024";

isNumeric($a);
isNumeric($b);
isNumeric($c);


function isNumeric($value) {
    if(is_numeric($value)) {
        echo "\"{$value}\"는 숫자입니다.";
    } else {
        echo "\"{$value}\"는 숫자가 아닙니다.";
    }

    echo "<br>";
}

/*
    [output]
    "안녕하세요"는 숫자가 아닙니다.
    "11"는 숫자입니다.
    "2024"는 숫자입니다.

*/

결과에서 알 수 있듯이, is_numeric()은 정수타입의 값뿐만 아니라 숫자 형태의 값도 true로 판별합니다.


12. 타입이 숫자인지 판별 함수 : is_numeric()

<?php

$a = "안녕하세요";
$b = 11;
$c = "2024";

isInt($a);
isInt($b);
isInt($c);


function isInt($value) {
    if(is_int($value)) {
        echo "\"{$value}\"는 숫자입니다.";
    } else {
        echo "\"{$value}\"는 숫자가 아닙니다.";
    }

    echo "<br>";
}

/*
    [output]
    "안녕하세요"는 숫자가 아닙니다.
    "11"는 숫자입니다.
    "2024"는 숫자가 아닙니다.

*/

결과에서 알 수 있듯이, is_numeric()과 달리 is_int()는 반드시 정수 타입의 형태만 true로 판별합니다.