<?php
echo 1
?>
1 이 출력 되는 것을 볼 수 있다!! 😁
숫자의 중요한 특성은 계산을 할 수 있다!
<?php
echo 1+1
?>
이렇게 연산자를 이용하여 계산 가능하다 !
<?php
echo 1+1;
echo 2*2;
echo 8/2;
echo 3-1;
?>
결과값이 각각 2, 4, 4, 2 가 나온다.
숫자인지 문자인지 Type을 확인 가능한데,
<?php
var_dump(6)
?>
// var_dump(value)의 내장함수를 이용하면 type을 알 수 있다.
// 6이라는 숫자의 타입을 확인해보면
이렇게 int(6)이라고 integer(정수) 6이라고 type이 명시된다.
<?php
echo var_dump(1234);
echo var_dump("1234");
?>
" " 안에 들어간 것은 문자열로 string이고 그냥 1234는 number로 Integer이다.
string(4)라고 나왔는데, 문자의 길이를 말한다.
<?php
echo var_dump(1234);
echo var_dump("1234");
echo "Hello World"."HI,there";
echo "abcd"." "."efgh";
?>
여기서 문자열을 붙일 때 +를 사용하는 것이 아니라, .(점)을 사용해야한다.
띄어쓰기할 때도, " " 공백을 더해주면 된다.
echo "그는 '안녕하세요' 라고 말했다";
echo "그는 \"안녕하세요\" 라고 말했다";
// 백슬러시 사용하거나, 작은 따옴표로 묶거나
// 백슬러시는 escaping기능을 가지고 있어,
// 따옴표의 문자열 시작 또는 끝이라는 문법을 일시적으로 해제해주는 역할!
변하는 수
= 은 같다의 의미가 아니라 대입 연산자이다.
PHP에서는 변수의 이름앞에 무조건 $ 표시를 붙인다.
<html>
<body>
<?php
$a = 1;
echo $a+1; #2
echo "<br \>";
$a=2;
print $a+1; #3
?>
</body>
</html>
결과
echo와 print는 같은 의미로 보면된다.
php에서는 #은 #다음의 것은 프로그래밍적인 의미로 해석하지않는다. 즉, 주석을 말한다.
주석으로는 #, //,
/* */(얘는 범위를 주석으로 묶어버린다.)
변수로 문자열도 받아서 문자열을 합칠 수 있다.
<html>
<body>
<?php
$first = "coding";
echo $first." everybody";
?>
</body>
</html>
결과
변수는 코드의 재활용성을 높여준다.
예를들어서 100에 10을 더하고, 10을 나눈 후에 다시 10을 빼고 거기에 10을 곱해야 한다고 치자. 그리고 각 단계마다 그 결과를 출력해야 한다면 코드는 아래와 같을 것이다.
<html>
<body>
<?php
echo 100+10;
echo '<br />';
echo (100+10)/10;
echo '<br />';
echo ((100+10)/10)-10;
echo '<br />';
echo (((100+10)/10)-10)*10;
echo '<br />';
?>
</body>
</html>
<html>
<body>
<?php
$a = 100;
$a = $a + 10;
print $a.'<br />';
$a = $a / 10;
print $a.'<br />';
$a = $a - 10;
print $a.'<br />';
$a = $a * 10 ;
print $a.'<br />';
?>
</body>
</html>
즉, 프로그래밍을 효율적으로 하기위해서 변수가 필요하다.
고정된 데이터 !
<html> <body> <?php define('TITLE', 'PHP Tutorial'); // TITLE이 상수가 된다. echo TITLE; // 출력되는 값은 PHP Tutorial 이다. define('TITLE', 'JAVA Tutorial'); //근데 여기서 에러가 날 것이다. 왜냐하면, TITLE이라는 상수는 이미 정의 되어서 값이 PHP Tutorial인데 다른 값을 주니 오류가 나는 것이다. //그래서 다른 이름으로 정의를 해서 JAVA Tutorial이라는 값을 담아주어야한다. // echo TITLE2; ?> </body> </html>
결과
그래서 다시 다른 상수명으로 정의를 해주면,
<html>
<body>
<?php
define('TITLE', 'PHP Tutorial');
// TITLE이 상수가 된다.
echo TITLE.'<br/>';
// 출력되는 값은 PHP Tutorial 이다.
define('TITLE2', 'JAVA Tutorial');
//근데 여기서 에러가 날 것이다. 왜냐하면, TITLE이라는 상수는 이미 정의 되어서 값이 PHP Tutorial인데 다른 값을 주니 오류가 나는 것이다.
//그래서 다른 이름으로 정의를 해서 JAVA Tutorial이라는 값을 담아주어야한다.
echo TITLE2;
?>
</body>
</html>
결과
이렇게 값을 다 출력할 수 있다.
- 그래서 상수는 언제 사용하면될까??
- 1번만 정의되면 변경이 불가한 특성때문에, 바뀌지않는 것을 정의할 때 사용하면 된다.(Javascript의 const a = value로 정의하는 것처럼 !)
- 그리고 상수를 사용할 때는 대문자를 사용하는 것이 관습이다.
변수에 담긴 데이터 형을 검사
<html> <body> <?php $a = 100; echo gettype($a); settype($a, 'double'); echo '<br />'; echo gettype($a); ?> </body> </html>
결과
var_dump와 비슷 하지만 var_dump는 데이터형에 대한 검사와 함께 출력까지 강제로 하기 때문에 활용도가 떨어진다.
settype은 첫번째 인자로 주어진 값을 두번째 인자에 해당하는 데이터 형으로 변경해준다.즉, 원하는 데이터 형으로 형변환 할 수 있다.데이터의 형을 확인하는 내장함수(API)를 봐보자.
이 함수들은 return을 bool(True OR False)로 한다.
그래서 조건문에서 이 함수들을 활용하여 조건문을 만들 수도 있다.
- is_ array
- is_ bool
- is_ callable
- is_ double
- is_ float
- is_ int
- is_ integer
- is_ long
- is_ null
- is_ numeric
- is_ object
- is_ real
- is_ resource
- is_ scalar
- is_ string
가변변수
variable variables. 가변변수는 변수의 이름을 변수로 변경 할 수 있는 기능이다.
<html>
<body>
<?php
$title = 'subject';
$$title = 'PHP tutorial';
echo $subject;
?>
</body>
</html>
위의 코드를 보면 변수 $title의 값이 subject이다.
그런데 5행에 나타나는 title에는 $가 두번 표시되어 있다. 이것은 문자열 'PHP tutorial'이 변수 $title의 값이 아니라 변수 $subject의 값이라는 의미다. 변수의 이름을 동적으로 만들 수 있다는 점은 PHP가 가진 유연함을 보여준다.
연산자
$a = 1
연산자란 값에 대해서 어떤 작업을 컴퓨터에게 지시하기 위한 기호인데 우리는 이미 연산자를 사용했다. 아래 예제 중에서 '='는 우항의 값인 1을 좌항의 변수 a에 대입하는 '대입 연산자'다비교연산자
프로그래밍에서 비교란 주어진 값들이 같은지, 다른지, 큰지, 작은지를 구분하는 것을 의미한다. 이 때 비교 연산자를 사용하는데 비교 연산자의 결과는 true나 false 중의 하나다.
좌항과 우항을 비교
대입연산자 = 를 '같다'라고 해석하지 말것!
==(같다) , >=(크거나 같다) , <= (작거나 같다) , > (크다), < (작다), != (같지 않다)
비교연산자 " == "
//비교연산자 ==(같다) <html> <body> <?php echo "1==2 : "; var_dump(1==2); #false echo '<br />'; echo "1==1 : "; var_dump(1==1); #true echo '<br />'; echo '"one"=="two" : '; var_dump("one"=="two"); #false echo '<br />'; echo '"one"=="one" : '; var_dump("one"=="one"); #true echo '<br />'; ?> </body> </html>
결과
비교연산자 " >= "
<html> <body> <?php echo "10>=20 : "; var_dump(10>=20); #false echo '<br />'; echo "10>=1 : "; var_dump(10>=1); #true echo '<br />'; echo '10>=10 : '; var_dump(10>=10); #true ?> </body> </html>
결과
비교연산자 " > "
<html> <body> <?php echo "10>20 : "; var_dump(10>20); #false echo '<br />'; echo "10>1 : "; var_dump(10>1); #true echo '<br />'; echo '10>10 : '; var_dump(10>10); #false ?> </body> </html>
결과
비교연산자 " != "
<html> <body> <?php echo "1!=2 : "; var_dump(1!=2); #true echo '<br />'; echo "1!=1 : "; var_dump(1!==1); #false echo '<br />'; echo '"one"!="two" : '; var_dump("one"!="two"); #true echo '<br />'; echo '"one"!="one" : '; var_dump("one"!="one"); #false echo '<br />'; ?> </body> </html>
결과
생활코딩 PHP
https://opentutorials.org/course/3018/5103