vs코드에서 1.php 파일을 새로 만들자
<?php
// xampp
// 웹서버, DB서버, PHP 설치
// http://php.net/manual/en/install.php
$txt = "PHP";
echo "I love $text!";
이렇게 PHP로만 구성 되어 있으면 마지막 ?>을 생략 가능
localhost:포트번호 를 주소창에 입력하면 기본적으로 index.php가 나온다
1.php를 렌더링 하려면 localhost:포트번호/1.php 를 주소창에 입력하면 된다
1.html 만들어서 localhost:포트번호/1.html 를 주소창에 입력한 것과 다를게 없다
셜정하기 따라서 html파일에 php를 인식 가능하게 하기도 한다
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta http-equiv="X-UA-Compatible" content="IE=edge">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>Document</title>
</head>
<body>
<h1>My first PHP page</h1>
<?php
echo "Hello world";
?>
</body>
</html>
이렇게 html 요소와 같이 쓰는게 가능하다
주석은 // 또는 #을 쓰고 /**/로 다중 주석이 가능하다
php는 서버사이드스크립트로 브라우저로 소스보기 하면 주석이 보이지 않는다
다시 1.php에서
<?php
$txt = "안녕하세요"; //문자열
$x = 5; //정수
$y = 10.5; //실수
?>
이 처럼 변수 타입에 대한 선언은 필요 없다
대소문자 구분이 되니 조심하자!
<?php
$x = 5;
function myTest() {
echo "변수 x의 출력값 $x"
}
myTest();
?>
이렇게 하면 Undefined variable이라고 렌더링 될 것이다.
다시
<?php
$x = 5;
function myTest() {
echo "변수 x의 출력값 $x"
echo "<br>";
}
myTest();
echo "변수 x의 출력값 $x"
?>
변수 x에 값은 잘 들어 갔다
(여기서 echo "<br>";는 줄바꿈을 위해 넣었다.)
함수 바깥에서 선언한 변수가 함수 내에서는 적용되지 않는다.
함수 내에 변수를 가져오려면
<?php
$x = 5;
function myTest() {
global $x;
echo "변수 x의 출력값 $x"
echo "<br>";
}
myTest();
echo "변수 x의 출력값 $x"
?>
함수 내에 변수 x를 다시 글로벌로 선언을 해주면 함수내의 x값이 5로 잘 출력 된다
결국 글로벌 선언으로 인해 함수내에서 선언 했더라도 함수 내에서 값이 변하면 전체 출력값이 변하게 된다.
글로벌 선언을 하지 않고 함수 내에서 변수 x를 다시 새롭게 초기화 하면 함수 내의 x와 함수 바깥의 x는 다른 값을 가질 수 있게 된다
2.php 파일을 새로 만들자
<?php
echo"";
print"";
?>
이 둘은 완전히 동일하다
<?php
echo"아! <h2>PHP는 재밌다"</h>";
?>
이렇게 출력문 내에서 마크업 언어 같이를 쓸 수 있다
이전에 썼던 것과 같이 변수도 사용가능하다
<?php
$txt = "Learn PHP";
echo "<h2>".$txt."</h>";
?>
이렇게 마크업 사이에 ..을 넣고 그 사이에 변수 사용도 가능하다
<?php
$x = 1;
$y = 2;
echo "<h2>".$txt."</h>";
echo $x + $y;
?>
이렇게 쓰면 사칙연산도 출력도 가능하다
<?php
$x = 1;
$y = 2;
var_dump($x);
?>
이렇게 해당 변수가 어떤 타입을 가지고 있는지 출력하는 빌트인 함수도 있다
<?php
$x_len = strlen("한글");
echo($x_len);
?>
이 처럼 문자열을 반환하는 함수도 있다
이건 말 그대로 반환이기에 따로 출력해야 확인 할 수 있다
<?php
echo str_word_count("Hello World");
?>
이건 문장의 캡카운트를 반환하는 함수인데, 한글은 지원 안한다
<?php
echo strrev("Hello World");
?>
문자열을 뒤집어 반환하는 함수 이다
<?php
$a = strpos("Hello world", "world");
echo
$a;
?>
문자열을 찾아 인덱스를 반환하는 함수 이다 위의 출려값은 6이다.
이것은 정규식 느낌으로 이메일 판단할 때 쓴다
3.php파일을 새로 만든다
<?php
$str = 나는 자랑스러운 미국인이다.";
$str1 = str_replace("미국인", "한국인", $str);
echo $str1;
?>
str_replace는 바꿀 대상 문자, 바꿀 문자, 대상 변수명을 입력하면 문자가 바뀐다
많은 함수들이 있으니 다 암기 할 필요없고 그때그때 구글링해서 찾아 쓰자
<?php
$x = 1234;
var_dump(is_int($x));
?>
여기서 is_int는 해당 변수가 정수인지 판별을하고 boolean으로 반환한다
<?php
$x = "안녕";
if( is_numeric($x) ) {
echo "숫자입니다.";
}else {
echo "숫자가 아닙니다"
}
?>
"안녕"대신 "3"을 넣어도 숫자로 판별한다. 좀 신기한 기능이다
타입을 명확히 구분 해야 한다면 is_int를 쓰자
<?php
echo (pi());
?>
이러면 pie값 3.141592..값이 출력 된다
<?php
echo (min(0. 4. 2. -7, 5));
?>
이러면 가장 작은값인 -7을 찾아주고 max로 바꾸면 가장 큰값을 찾아준다
<?php
$a = -12
$b = abs($a);
echo $b;
?>
abs();는 절대값을 반환한다.
<?php
$b = abs($4);
echo $b;
?>
말그대로 스퀘어루트의 줄임말이다 스퀘어루트값을 반환한다
<?php
$b = round($5);
echo $b;
?>
반올림해서 반환하는 함수 이다. 실수일 경우 정수로 반환한다
음수의 경우 가장 가까운 정수로 반환을 한다
<?php
$b = rand();
echo $b;
?>
난수를 반환한다. 자바스크립트와 다르게 정수로 반환한다
<?php
$b = rand(1, 5);
echo $b;
?>
1에서 부터 5까지 범위가 지정되어 난수가 생성된다.
<script>
const GREETING = "안녕하세요";
document.write(GREETING);
</script>
<?php
define("GEREETING", "안녕하세요");
echo GREETING;
?>
위는 자바스크립트 상수 선언이고 아래는 PHP상수 선언이다.
상수이기에 대입이 안된다
산술연산자는 다른 프로그래밍언어와 같기에 생략한다
할당연산자도 다른 프로그래밍 언어와 같기에 생략한다
<?php
$a = 10;
$b = "10";
if ($a == $b) {
echo "a와 b는 같다";
}else{
echo "a와 b는 다르다";
}
?>
문자열 10과 정수 10은 ==연산자로 같다로 표시 된다
하지만 ===연산자는 다르다고 표시 된다
===자료형까지 본다
그리고 != 과 같은 <>도 있다
!==는 자료형까지 보며, 비교한다
증감연산자는 다른언어와 같기에 생략한다
//and, or, xor, &&, ||, !
$x = true;
$y = true;
var_dump($x and $y);
결과 값은 당연히 bool(true)로 나올 것이다
and는 논리 곱이다 1 = true, 0 = false라고 생각하자.
or은 논리 합이다 1 이상은 true로 취급하기에 둘다 트루여도 트루로 취급
xor는 베타적논리합으로 true가 두번이면 false가 나오고 나머지는 or과 같다. 서로 의견이 일치하지 않을경우 true이다.
나머지는 다른 프로그래밍 언어와 같기에 생략한다.
//. .=
$a = "안녕";
$b = $a . "하세요";
echo $b;
"안녕" 문자열에 "하세요"가 더해져 "안녕하세요"가 출력된다.
이것은 $a =. "하세요";를 $b자리에 대신 써도 동일한 출력값이 나온다.