๋šœ๋ถ€๋‹ˆ์˜ Devlog

[PHP] ๊ธฐ๋ณธ ๋ฌธ๋ฒ• ์ •๋ฆฌ (1)

by ๋šœ๋ถ€๋‹ˆ

PHP

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 ๋ณ€์ˆ˜๋ช… ๊ทœ์น™

  1. ๋ณ€์ˆ˜์˜ ์ด๋ฆ„์€ ์˜๋ฌธ ๋Œ€์†Œ๋ฌธ์ž, ์ˆซ์ž, ์–ธ๋”์Šค์ฝ”์–ด(_)๋กœ๋งŒ ๊ตฌ์„ฑ๋ฉ๋‹ˆ๋‹ค.
  2. ๋ณ€์ˆ˜์˜ ์ด๋ฆ„์€ ์ˆซ์ž์™€์˜ ๊ตฌ๋ถ„์„ ๋น ๋ฅด๊ฒŒ ํ•˜๊ธฐ ์œ„ํ•ด ์ˆซ์ž๋กœ๋Š” ์‹œ์ž‘ํ•  ์ˆ˜ ์—†์Šต๋‹ˆ๋‹ค.
  3. ๋ณ€์ˆ˜์˜ ์ด๋ฆ„์—๋Š” ๊ณต๋ฐฑ์ด ํฌํ•จ๋  ์ˆ˜ ์—†์Šต๋‹ˆ๋‹ค.
  4. ๋ณ€์ˆ˜์˜ ์ด๋ฆ„์œผ๋กœ PHP์—์„œ ๋ฏธ๋ฆฌ ์ •์˜ํ•œ $this๋Š” ์‚ฌ์šฉํ•  ์ˆ˜ ์—†์Šต๋‹ˆ๋‹ค.
  5. ๋ณ€์ˆ˜์˜ ์ด๋ฆ„์€ ๋Œ€์†Œ๋ฌธ์ž๋ฅผ ๊ตฌ๋ถ„ํ•ฉ๋‹ˆ๋‹ค.

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

๋ธ”๋กœ๊ทธ์˜ ์ •๋ณด

๋šœ๋ถ€๋‹ˆ์˜ Devlog

๋šœ๋ถ€๋‹ˆ

ํ™œ๋™ํ•˜๊ธฐ