[PHP] ๊ธฐ๋ณธ ๋ฌธ๋ฒ ์ ๋ฆฌ (1)
by ๋๋ถ๋0. ์ฃผ์
๋ฌธ๋ฒ์ ๋ํ ๊ธฐ๋ณธ์ ์ธ ์ ๋ฆฌ๋ฅผ ํ๊ธฐ ์ ์ฃผ์์ ๋ํด ์ ๋ฆฌํ๊ฒ ์ต๋๋ค.
์ฃผ์์ด๋ ์ฝ๋์์์ ํด์๋์ง ์๊ณ ๋ฌด์๋๋ ์ฝ๋์ธ๋ฐ์, PHP์์ ์ฃผ์์ ์ข ๋ฅ๋ ๋ค์๊ณผ ๊ฐ์ต๋๋ค.
1. ํ ์ค C์ธ์ด ์คํ์ผ : //์ฃผ์๋ฌธ
2. ์ฌ๋ฌ ์ค C์ธ์ด ์คํ์ผ : /*์ฃผ์๋ฌธ*/
3. ํ ์ค ์ ์คํ์ผ : #์ฃผ์๋ฌธ
1. ์ซ์์ ๋ฌธ์
1.1. ์ซ์
์ซ์์ ๋ํด ํ๋ฉด์ ์ถ๋ ฅํ๋ ๋ฐฉ๋ฒ์ ๋ค์๊ณผ ๊ฐ์ด ๊ฐ๋จํฉ๋๋ค.
<?php
echo 1;
?>
์คํ ๊ฒฐ๊ณผ๋ฅผ ํ๋ฉด์ ํตํด ํ์ธํ๋ฉด ๋ค์๊ณผ ๊ฐ์ต๋๋ค.
์ฐ์ฐ์ ํ๋ ๋ฐฉ๋ฒ ๋ํ ๊ฐ๋จํฉ๋๋ค. ์ฝ๋๋ ์์๋๋ก ๋ง์ , ๋บ์ , ๊ณฑ์ , ๋๋์ ์ ์ฐ์ฐ์ ์ฌ์ฉ ๋ฐฉ๋ฒ์ ๋๋ค.
<?php
echo 2+2; // ๋ง์
echo 2-2; // ๋บ์
echo 2*2; // ๊ณฑ์
echo 2/2; // ๋๋์
?>
var_dump๋ฅผ ์ฌ์ฉํ๋ฉด ํ์์ ๋ํด ํ์ธํ ์ ์์ต๋๋ค.
<?php
var_dump(6);
var_dump(6.5);
?>
์์ ๊ฐ์ ํ์์ผ๋ก ์ ๋ ฅํ๊ณ ์คํ์์ผ๋ณด๋ฉด 6์ด๋ผ๋ ์ซ์๋ int ํ, 6.5๋ผ๋ ์ซ์๋ float ํ์ด๋ผ๋ ๊ฒ์ ์ ์ ์์ต๋๋ค.
1.2. ๋ฌธ์
๋ฌธ์์ ๋ํด ํํํ ๋๋ " " (ํฐ๋ฐ์ดํ)๋ ' ' (์์๋ฐ์ดํ)๋ก ๋ฌถ์ด์ค์ผ ํฉ๋๋ค.
<?php
echo "Hello World";
?>
์คํ ๊ฒฐ๊ณผ๋ฅผ ํ๋ฉด์ ํตํด ํ์ธํ๋ฉด ๋ค์๊ณผ ๊ฐ์ต๋๋ค.
์ด๋ฒ์๋ 1234์ "1234"๋ผ๊ณ ์ ๋ ฅํ์ ๋, ๊ฐ ๋ฐ์ดํฐ์ ํ์์ ๋ํด ๋น๊ตํด๋ณด๊ฒ ์ต๋๋ค.
<?php
echo var_dump(1234);
echo var_dump("1234");
?>
ํด๋น ์ฝ๋๋ฅผ ์คํ์์ผ๋ณด๋ฉด ๋ค์๊ณผ ๊ฐ์ ๊ฒฐ๊ณผ๋ฅผ ์ป์ ์ ์๋๋ฐ,
""(ํฐ๋ฐ์ดํ) ์ ๋ฌด์ ๋ฐ๋ผ ๋ฐ์ดํฐ์ ํ์์ด ๋ค๋ฅด๊ฒ ์ถ๋ ฅ๋๋ ๊ฒ์ ํ์ธํ ์ ์์ต๋๋ค.
๋ฌธ์์ ๋ฌธ์๋ฅผ ๊ฒฐํฉํ๊ธฐ ์ํด์๋ . (๋ง์นจํ)๋ฅผ ์ฌ์ฉํด์ผ ํฉ๋๋ค.
๋ค์๊ณผ ๊ฐ์ ํํ๋ก ๋ ๋ฌธ์ ์ฌ์ด์ ๊ณต๋ฐฑ๊น์ง ํฌํจํ์ฌ ๋ํด์ฃผ๋ ์ฝ๋๋ฅผ ์คํ์์ผ๋ด ์๋ค.
<?php
echo "hello" . " " . "world";
?>
๊ทธ๋ฌ๋ฉด ๋ค์๊ณผ ๊ฐ์ ๊ฒฐ๊ณผ๋ฅผ ์ป์ ์ ์์ต๋๋ค. ๋ง์นจํ๋ฅผ ์ฌ์ฉํ๋ค๋ ํน์ดํ๋ค์๐ฒ๐ฒ
๋ฌธ์ ์์์ ์ธ์ฉ๊ตฌ๋ฅผ ์ฐ๋ ๋ฐฉ๋ฒ์ ๋ ๊ฐ์ง๊ฐ ์์ต๋๋ค.
์ฒซ ๋ฒ์งธ๋ ๋ฐ์ดํ๋ฅผ ๋ค๋ฅด๊ฒ ์ฌ์ฉํ๋ ๊ฒ์ด๊ณ , ๋ ๋ฒ์งธ๋ \ (์ญ์ฌ๋์)๋ฅผ ์ฌ์ฉํ๋ ๊ฒ์ ๋๋ค.
์ญ์ฌ๋์ ๋ค์ ์๋ ๋ฌธ์๋ escaping์ด๋ผ๊ณ ํด์ ๋ฌธ์ ๊ทธ ์์ฒด๋ฅผ ์ธ์ํ๊ฒ ๋ฉ๋๋ค.
<?php
echo '๊ทธ๋ "์๋
ํ์ธ์" ๋ผ๊ณ ๋งํ๋ค.';
echo "๊ทธ๋ \"์๋
ํ์ธ์\" ๋ผ๊ณ ๋งํ๋ค."
?>
์์ ๊ฐ์ ํํ๋ก ์ฝ๋๋ฅผ ์คํํ ๊ฒฐ๊ณผ, ๋ ์ฝ๋ ๋ชจ๋ ์ ์์ ์ผ๋ก ์ธ์ฉ๊ตฌ๋ฅผ ๋ง๋ค์ด์ฃผ๋ ๊ฒ์ ํ์ธํ ์ ์์ต๋๋ค.
2. ๋ณ์์ ์์
2.1 ๋ณ์
๋ณ์๋ ๋ฌธ์๋ ์ซ์ ๊ฐ์ ๊ฐ์ ๋ด๋ ๊ณต๊ฐ์ด๋ฉฐ, ์ฌ๊ธฐ์ ๋ด๊ธด ๊ฐ์ ๋ค๋ฅธ ๊ฐ์ผ๋ก ๋ฐ๊ฟ ์ ์์ต๋๋ค.
๋ณ์๋ฅผ ์ ์ธํ๊ธฐ ์ํด์๋ $(๋ฌ๋ฌ ๊ธฐํธ)๋ฅผ ์ฌ์ฉํฉ๋๋ค.
$๋ณ์ ์ด๋ฆ = ์ด๊น๊ฐ;
๋ค์์ ๋ณ์์ ์ ์ ๊ฐ 10์ ๋์ ํ๊ณ ํ๋ฉด์ ์ถ๋ ฅํ๋ ์ฝ๋์ ๋๋ค.
<?php
$var = 10;
echo $var;
?>
ํด๋น ์ฝ๋๋ฅผ ์คํ์์ผ๋ณด๋ฉด ๋ค์๊ณผ ๊ฐ์ ํ๋ฉด์ ๋ณผ ์ ์์ต๋๋ค.
๋ณ์๋ ์ ์ ๊ฐ๋ฟ๋ง ์๋๋ผ ์ค์ ๊ฐ, ๋ฌธ์์ด๋ ๋์ ํ ์ ์์ต๋๋ค. ์ฝ๋๋ ๋ค์๊ณผ ๊ฐ์ ํํ๋ก ์์ฑํ๋ฉด ๋ฉ๋๋ค.
$var = 10; // ์ ์๊ฐ์ ๋์
ํจ
$var = 3.14; // ์ค์๊ฐ์ ๋์
ํจ
$var = "PHP"; // ๋ฌธ์์ด์ ๋์
ํจ
์์ฑํ ๋ณ์๋ฅผ ๋ฌธ์์ด ๋ด์์ ์ฌ์ฉํ๋ฉด, PHP๋ ํด๋น ๋ณ์์ ์ ์ฅ๋ ๊ฐ์ผ๋ก ์๋ ๋ณํํด์ค๋๋ค.
๊ทธ๋ฌ๋ ๋ณ์์ ์ด๋ฆ ๋ค์ ๋ค๋ฅธ ๋ฌธ์๊ฐ ์ค๊ฒ ๋๋ฉด ํด๋น ๋ณ์๋ฅผ ์ ํํ๊ฒ ์ธ์ํ์ง ๋ชปํ๊ธฐ ๋๋ฌธ์
{} (์ค๊ดํธ)๋ก ๋ณ์ ์ด๋ฆ์ ๊ฐ์ธ์ ์ด๋๊น์ง๊ฐ ๋ณ์ ๋ช ์ธ์ง ํ์คํ๊ฒ ๋ช ์ํด์ผ ํฉ๋๋ค.
<?php
$var = 10;
echo "๋ณ์ \$var์ ์ ์ฅ๋ ๊ฐ์ $var ์
๋๋ค. </br>";
echo "๋ณ์ \$var์ ์ ์ฅ๋ ๊ฐ์ $var์
๋๋ค. </br>";
echo "๋ณ์ \$var์ ์ ์ฅ๋ ๊ฐ์ {$var}์
๋๋ค.";
?>
์ฝ๋๋ฅผ ์คํ์์ผ๋ณด๋ฉด ๋ค์๊ณผ ๊ฐ์ ๊ฒฐ๊ณผ๋ฅผ ์ป์ ์ ์์ต๋๋ค. ์ฐธ๊ณ ๋ก </br>์ ์ค ๋ฐ๊ฟ์ ๋๋ค.
2.1.1 ๋ณ์๋ช ๊ท์น
- ๋ณ์์ ์ด๋ฆ์ ์๋ฌธ ๋์๋ฌธ์, ์ซ์, ์ธ๋์ค์ฝ์ด(_)๋ก๋ง ๊ตฌ์ฑ๋ฉ๋๋ค.
- ๋ณ์์ ์ด๋ฆ์ ์ซ์์์ ๊ตฌ๋ถ์ ๋น ๋ฅด๊ฒ ํ๊ธฐ ์ํด ์ซ์๋ก๋ ์์ํ ์ ์์ต๋๋ค.
- ๋ณ์์ ์ด๋ฆ์๋ ๊ณต๋ฐฑ์ด ํฌํจ๋ ์ ์์ต๋๋ค.
- ๋ณ์์ ์ด๋ฆ์ผ๋ก PHP์์ ๋ฏธ๋ฆฌ ์ ์ํ $this๋ ์ฌ์ฉํ ์ ์์ต๋๋ค.
- ๋ณ์์ ์ด๋ฆ์ ๋์๋ฌธ์๋ฅผ ๊ตฌ๋ถํฉ๋๋ค.
2.1.2. ๊ธฐ๋ณธ ํ์
ํ์ | ์ค๋ช |
boolean (๋ถ๋ฆฌ์ธ) | true(์ฐธ)๊ณผ false(๊ฑฐ์ง)์ผ๋ก ํํํจ. ์๋ณด๋ฌธ์๋ฅผ ๊ตฌ๋ถํ์ง ์์. |
integer (์ ์) | ๋ถํธ๋ฅผ ๊ฐ์ง๋ ์์๋ถ๊ฐ ์๋ ์. ํํ ๋ฒ์๋ OS์ ๋ฐ๋ผ ๋ฌ๋ผ์ง๋ฉฐ, 64๋นํธ ์ด์์ฒด์ ๊ธฐ์ค -2^63 ~ (2^63 - 1) |
float (์ค์) | ์์๋ถ๋ ์ง์๋ถ๋ฅผ ๊ฐ์ง๋ ์. ์ ์๋ณด๋ค ๋ ๋์ ํํ ๋ฒ์๋ฅผ ๊ฐ์ง. ํํ ๋ฒ์๋ OS์ ๋ฐ๋ผ ๋ฌ๋ผ์ง์ง๋ง ๋๋ต ~ 1.8e3-7 ๋ฏธ๋ฆฌ ์ ์๋ ์์์ธ INF๋ ๋ฌดํ ์ด๋ผ๋ ์๋ฏธ์ด๋ฉฐ, ์ค์์ ์ต๋ ๋ฒ์๋ผ๊ณ ๋ณด๋ฉด ๋จ. |
string (๋ฌธ์์ด) | ์ผ๋ จ์ ์ฐ์๋ ๋ฌธ์(character)๋ค์ ์งํฉ. ํฐ๋ฐ์ดํ("")๋ ์์๋ฐ์ดํ('')๋ก ๊ฐ์ธ์ ํํ. |
array (๋ฐฐ์ด) | ํ ์์ ํค(key)์ ๊ฐ(value)์ผ๋ก ์ด๋ฃจ์ด์ง ๋งต(map)์ผ๋ก ๊ตฌ์ฑ๋๋ ์์๊ฐ ์๋ ์งํฉ. |
object (๊ฐ์ฒด) | ํด๋์ค์ ์ธ์คํด์ค(instance)๋ฅผ ์ ์ฅํ๊ธฐ ์ํ ํ์
. ํ๋กํผํฐ(properties)์ ๋ฉ์๋(methods)๋ฅผ ํฌํจํ ์ ์์. |
resource (๋ฆฌ์์ค) | PHP ์ธ๋ถ์ ์กด์ฌํ๋ ์ธ๋ถ ์์. ๋ฐ์ดํฐ๋ฒ ์ด์ค ํจ์ ๋ฑ์์ ๋ฐ์ดํฐ๋ฒ ์ด์ค ์ฐ๊ฒฐ ๋ฑ์ ๋ฐํํ ๋ ์ฌ์ฉ. |
NULL | ์ค์ง ํ ๊ฐ์ง ๊ฐ (NULL ์์)๋ง์ ๊ฐ์ง ์ ์๋ ํน๋ณํ ํ์
. NULL ํ์ ์ ๋ณ์๋ ์์ง ์ด๋ ํ ๊ฐ๋ ๋์ ๋์ง ์์ ๋ณ์. |
2.1.3. ๋ณ์๋ช ์ด๊ธฐํ
PHP์์๋ ๋ฐ๋์ ๋ณ์์ ์ ์ธ๊ณผ ๋์์ ๊ทธ ๊ฐ์ ์ด๊ธฐํํ ํ์๊ฐ ์์ต๋๋ค.
์ด๊ธฐํ๋์ง ์์ ๋ณ์๋ ํด๋น ๋ณ์๊ฐ ์ฐธ์กฐ๋๊ฑฐ๋ ์ฌ์ฉ๋๋ ์์น์ ๋ฐ๋ผ ๋ค์๊ณผ ๊ฐ์ ๊ธฐ๋ณธ๊ฐ์ผ๋ก ์๋ ์ด๊ธฐํ๋ฉ๋๋ค.
ํ์ | ๊ธฐ๋ณธ๊ฐ |
boolean (๋ถ๋ฆฌ์ธ) | FALSE |
integer (์ ์) | 0 |
float (์ค์) | 0.0 |
string (๋ฌธ์์ด) | ๋น ๋ฌธ์์ด |
array (๋ฐฐ์ด) | ๋น ๋ฐฐ์ด |
2.1.4. ๋ณ์ ๋ฐ์ดํฐํ ๊ฒ์ฌ ๋ฐ ๋ณ๊ฒฝ
PHP์์ ๋ณ์์ ๋ด๊ธด ๋ฐ์ดํฐํ์ ๊ฒ์ฌํ ๋๋ gettype๊ณผ settype์ ์ฌ์ฉํฉ๋๋ค.
<?php
$var = 10;
echo gettype($var);
settype($var, 'double');
echo '<br />'; // ์ค๋ฐ๊ฟ
echo gettype($var);
?>
์ค์ ๋ก ์ฝ๋๋ฅผ ์ํํ ๊ฒฐ๊ณผ๋ ๋ค์๊ณผ ๊ฐ์ต๋๋ค.
2.1.5. ๊ฐ๋ณ ๋ณ์
๊ฐ๋ณ ๋ณ์๋ ๋ณ์์ ์ด๋ฆ์ ๋ณ์๋ก ๋ณ๊ฒฝํ ์ ์๋ ๊ธฐ๋ฅ์ ๋๋ค. ์ฝ๋๋ฅผ ๋ณด๋ ๊ฒ์ด ์ดํด๊ฐ ๋ ๋น ๋ฅผ ๊ฒ ๊ฐ๋ค์!
<?php
$var = 'subject';
$$var = 'PHP tutorial';
echo $var;
echo '<br />'; // ์ค๋ฐ๊ฟ
echo $subject;
?>
์ค์ ๋ก ์ฝ๋๋ฅผ ์ํํ ๊ฒฐ๊ณผ๋ ๋ค์๊ณผ ๊ฐ์ต๋๋ค.
2.2. ์์
์์(constant)๋ ๋ณํ์ง ์๋ ๊ฐ์ ๋๋ค. ๊ทธ๋ ๊ธฐ ๋๋ฌธ์ ์ด๋ ํ ์ํฉ์์๋ ์ ๋๋ก ๋ณํ ์ ์์ต๋๋ค.
2.2.1. define() ํจ์
์์๋ define() ํจ์๋ฅผ ์ฌ์ฉํ์ฌ ์ ์ธํ ์ ์์ต๋๋ค.
define(์์ ์ด๋ฆ, ์์ซ๊ฐ, ๋์๋ฌธ์ ๊ตฌ๋ถ ์ฌ๋ถ)
์ฒ์์ ์ง์ ํ ์์์ ๊ฐ์ ๋ณ๊ฒฝํ๋ ค๊ณ ํ๋ฉด ์ด๋ป๊ฒ ๋๋์ง ํ ๋ฒ ํ์ธํด๋ด ์๋ค.
์ฝ๋๋ฅผ ์๋์ ๊ฐ์ด ์์ฑํ ํ ์คํ์์ผ๋ด ๋๋ค.
<?php
define("TITLE", "PHP Tutorial");
echo TITLE;
define("TITLE", "JAVA Tutorial");
echo TITLE;
?>
ํ๋ฉด์๋ ๋ค์๊ณผ ๊ฐ์ด ์ฒ์ ์ค์ ํ ์์ ๊ฐ์ ๋ํด์๋ง ์ถ๋ ฅํ๊ณ , ๋ณ๊ฒฝ์ฌํญ์ ๋ํด์๋ ์คํํ์ง ์์์ต๋๋ค.
PHP Storm์ ์คํ ๋ก๊ทธ๋ฅผ ํ์ธํด๋ณด๋ฉด ์ด๋ฏธ ๊ฐ์ ์ค์ ํ๋ค๊ณ ๋จ๋ ๊ฒ์ ํ์ธํ ์ ์์ต๋๋ค.
2.2.2. ๋ง๋ฒ ์์ (magic constants)
PHP์๋ ์ด๋ค ์คํฌ๋ฆฝํธ์์๋ ์ฌ์ฉํ ์ ์๋ ๋ฏธ๋ฆฌ ์ ์๋ ๋ค์ํ ์์์ธ ๋ง๋ฒ ์์๋ฅผ ์ ๊ณตํฉ๋๋ค.
๋ง๋ฒ ์์๋ ๋์๋ฌธ์๋ฅผ ๊ตฌ๋ถํ์ง ์์ต๋๋ค.
์์ ์ด๋ฆ | ์ค๋ช |
__LINE__ | ํ์ผ์ ํ์ฌ ์ค ๋ฒํธ๋ฅผ ๋ฐํํจ. |
__FILE__ | ํ์ผ์ ์ ์ฒด ๊ฒฝ๋ก์ ์ด๋ฆ์ ๋ฐํํจ. include ๋ด๋ถ์์ ์ฌ์ฉํ ๊ฒฝ์ฐ include๋ ํ์ผ๋ช ์ ๋ฐํํจ. |
__DIR__ | ํ์ผ์ ๋๋ ํฐ๋ฆฌ๋ฅผ ๋ฐํํจ. ํฌํจํ ํ์ผ ์์์ ์ฌ์ฉํ ๊ฒฝ์ฐ ํฌํจ๋ ํ์ผ์ ๋๋ ํฐ๋ฆฌ๋ฅผ ๋ฐํํจ. dirname(__FILE__)๊ณผ ๊ฐ์ ๊ฒฐ๊ณผ๋ฅผ ๋ฐํํจ. |
__FUNCTION__ | ํจ์์ ์ด๋ฆ์ ๋ฐํํจ. |
__CLASS__ | ํด๋์ค์ ์ด๋ฆ์ ๋ฐํํจ. ํด๋์ค ์ด๋ฆ์ ๋์๋ฌธ์๋ฅผ ๊ตฌ๋ถํจ. |
__TRAIT__ | ํธ๋ ์ดํธ(trait)์ ์ด๋ฆ์ ๋ฐํํจ. ํธ๋ ์ดํธ์ ์ด๋ฆ์ ํธ๋ ์ดํธ๋ฅผ ์ ์ธํ ๋ค์์คํ์ด์ค๋ฅผ ํฌํจํจ. * ํธ๋ ์ดํธ๋ ์ฌ๋ฌ ๊ฐ์ ํด๋์ค๋ฅผ ์์๋ฐ์ ์ ์๋ ํํ (์ ํํ๋ ๊ฐ์ ธ์์ ์ฌ์ฉํ๋ ํํ) |
__METHOD__ | ํด๋์ค์ ๋ฉ์๋ ์ด๋ฆ์ ๋ฐํํจ. |
__NAMESPACE__ | ํ์ฌ ๋ค์์คํ์ด์ค์ ์ด๋ฆ์ ๋ฐํํจ. |
๐Reference
'PHP' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
[PHP] ๊ธฐ๋ณธ ๋ฌธ๋ฒ ์ ๋ฆฌ (3) (feat. ๋ฐฐ์ด) (0) | 2021.07.17 |
---|---|
[PHP] ๊ธฐ๋ณธ ๋ฌธ๋ฒ ์ ๋ฆฌ (2) (feat. ์ฐ์ฐ์, ์ ์ด๋ฌธ) (0) | 2021.07.13 |
[PHP] ์ฒซ ๋ฒ์งธ PHP ์ ํ๋ฆฌ์ผ์ด์ ์์ฑํ๊ธฐ (0) | 2021.07.12 |
[PHP] PHP Storm ์ค์ (0) | 2021.07.12 |
[PHP] Bitnami๋ก PHP ํ๊ฒฝ ์ธํ ํ๊ธฐ (0) | 2021.07.12 |
๋ธ๋ก๊ทธ์ ์ ๋ณด
๋๋ถ๋์ Devlog
๋๋ถ๋