HTML, CSS, JAVASCRIPT는 웹브라우저에서 동작하는 스크립트 언어.
PHP는 웹서버에서 동작하는 언어로 데이터베이스 등과 연동되어 회원관리, 게시판 등의 기능을 만드는데 사용가능.
Xampp프로그램
Apache + PHP +MariaDB 프로그램을 한번에 설치
Apache config(httpd.conf)에 Listen에 포트 번호 변경 가능
localhost:포트번호 => localhost:포트번호/dashboard
연결가능
C:\xampp\htdocs vscode에서 폴더 선택
control+, = 설정
설정 > php > settings.json
php.exe의 경로 설정
"php.validate.executablePath": "C:\\xampp\\php\\php.exe"
확장에서 PHP Intelephense 설치
<?php
echo "333"
?>
화면에 333이 나옴
php기초 문법, 변수 표기법, 주석처리, 자바스크립트와 차이
<?php
이 안에다 구문 작성
?>
!+tab해서 html로 바꿈
<?php
echo "안녕하세요";
?>
문장이 끝난 후 반드시 ;
마지막에서는 빼도 되지만 그래도 쓴다라고 생각
//변수
$a =1;
변수에 $사인
let, const는 없음.
주석은 자바스크립트와 동일
변수의 범위, 지역변수, 글로벌 변수
php같은 경우 소스 보기를 해도 주석으로 처리된 내용이 보이지 않지만 (서버사이드 언어, 보안상 좋음) html의 경우 주석으로 처리된 내용이 보인다.
<?php
//xampp
/*웹서버, DB서버, PHP
Apache, Mariadb, PHP컴파일러
php.net*/
$txt="PHP";
echo "I LOVE $txt !";
#80포트 시 localhost만 입력해주면 된다.http://localhost/ = index.php
$txt1 = "안녕하세요"; //문자열
$x = 5; //정수
$y=10.5; //실수
$X=10;
//변수는 대소문자를 구분한다.
echo "x= $x, X= $X";
//전역변수
//로컬변수(지역변수)
$x=5;
function myTest(){
echo "변수 x의 출력값 $x";
echo "<br>";
}
myTest();
echo "변수 x의 출력값 $x";
function myTest(){
global $x;
echo "변수 x의 출력값 $x";
echo "<br>";
}
global(전역변수)로 정의 해주면
I LOVE PHP !x= 5, X= 10변수 x의 출력값 5
변수 x의 출력값 5
변수 x의 출력값 5
제대로 출력
$x++; 1증가
출력함수, 문자열 길이, 문자열 뒤집기, 문자열 찾기
<?php
echo "1";
print "2";
echo("3");
print("4");
?>
echo와 print는 동일함
<?php
echo "1";
print "2";
echo("3");
print("4");
echo "<h2>PHP는 재밌다.</h2>";
echo "Hello World! <br>";
echo "I'm about to learn PHP!<br>";
$txt1="Learn PHP";
$x=5;
$y=4;
//문자열 연결 연산자로 .사용
echo "<h2>".$txt1."</h2>";
echo $x+$y."<br>";
//var_dump로 형을 알수 있음.
$x1=3333;
var_dump($x);
$x2="한글"; //6bytes
var_dump($x2);
//문자열 bytes반환
$x_len = strlen("한글");
echo $x_len."<br>";
//단어 수 세기 한글x
echo str_word_count("hello world")."<br>";
//문자열 뒤집기
echo strrev("hello world")."<br>";
//위치 0부터 count, 보통 email @
$a = strpos("hello world", "world")."<br>";
echo $a;
$email = "aaa.gmail.com";
if(strpos($email,"@")){
echo "이메일 형식에 맞음.";
}else{
echo "이메일 형식이 잘못됨.";
}
?>
<?php
$str = "나는 자랑스러운 미국인이다.";
//str_replace("바꿀문자열","바뀔문자열","대상문자열");
$str1 = str_replace("미국인", "한국인",$str);
echo $str1."<br>";
//is_int 정수, is_float 실수
//is_numeric
//"3"일 때는 정수가 아닙니다로 나옴.
$x = 3;
var_dump(is_int($x));
if(is_int($x)){
echo "x는 정수입니다."."<br>";
}else{
echo "x는 정수가 아닙니다."."<br>";
}
//"3"도 숫자로 판단
$x2="3";
if(is_numeric($x2)){
echo "숫자입니다."."<br>";
}else{
echo "숫자가 아닙니다."."<br>";
}
echo(pi())."<br>";
echo(max(0,1,2,333,12,1));
?>
난수발생, 반올림, 절대값, 루트값, 상수, 파이
<script>
const GREETING="안녕하세요!<br>"
document.write(GREETING)
</script>
<?php
//abs() 절대값
$a=-33;
$b=abs($a);
//sqrt() 루트
$b1=sqrt(4);
echo $b1."<br>";
//round 반올림
$a2 = -2.75;
$b=round($a);
echo $b."<br>";
//rand() 난수 , 범위
$a3=rand(10,12);
echo $a3."<br>";
//define()
define("GREETING","안녕하세요");
//상수는 변경할 수 없음.
//Parse error: syntax error, unexpected token "=" in C:\xampp\htdocs\4.php on line 33
//GREETING="DDD";
echo GREETING."<br>";
?>
연산자
<?php
//PHP산술 연산자 +- /* 나머지 % **제곱
$a=2**3;
echo $a."<br>";
//php할당 연산자
$b = 5;
$a1 = $b;
$b--;
echo $b."<br>";
$y=10;
$x=5;
$x+=$y; //$x= $x+$y;
echo $x."<br>";
//비교 연산자 문자열과 숫자를 같게 판단
$a2 = 10;
$b2= "10";
if($a2 == $b2){
echo "a2와 b2는 같다."."<br>";
}else{
echo "a2와 b2는 다르다"."<br>";
}
$a3 = 10;
$b3= "10";
if($a3 === $b3){
echo "a3와 b3는 같다."."<br>";
}else{
echo "a3와 b3는 다르다"."<br>";
}
//!= 과 <>는 동일
var_dump($a3 != $b3);
//증감연산자 ++,--
//논리 연산자
//and, or, xor, &&, ||, !
$x=true;
$y=true;
//논리곱
var_dump($x and $y); //1*1 = 1
var_dump($x && $y); //1*1 = 1
$x=true;
$y=false;
var_dump($x and $y); //1*0=0
//논리합
var_dump($x or $y); //둘 중 하나만 true여도 true
var_dump($x || $y); //둘 중 하나만 true여도 true
//xor
var_dump($x xor $y); //두 개의 값이 다를 때 true 같을때 false
//문자열 연산자
$a="안녕";
$a .="하세요";
echo $a;
?>
<script>
const arr1 = ["자동차", "비행기","요트"];
const arr2 = [...arr1];
arr1.pop();
</script>
<?php
//내장함수
//사용자 정의함수
/*
$money=3000;
//3번째 자리 ,
echo number_format($money);
function getString(){
echo '구문';
return 3;
}
$a = getString();
echo $a;
function addNumber($a, $b){
return $a+$b;
}
echo "<h2>" . addNumber(3,5) . "</h2>";
echo "<h2>" . addNumber(13,5) . "</h2>";
echo "<h2>" . addNumber(3,15) . "</h2>";
echo "<h2>" . addNumber(23,5) . "</h2>";
*/
//declare 맨 처음에 정의되어야한다. 타입 제한
//declare(strict_types=1);
function addNumber1(int $a, int $b) : int{
return $a+$b;
}
$c = addNumber1(5,4);
echo $c;
//배열
$car = array("자동차", "비행기", "요트");
$car2 = $car;
$car2[0] = "비행선";
print_r($car2);
print_r($car);
//print_r($_SERVER);
echo $_SERVER['PHP_SELF'];
$ag = $_SERVER['HTTP_USER_AGENT'];
if(strpos($ag, 'Chrome')){
echo '크롬 유저시군요';
}else{
echo '크롬 유저가 아니시군요';
}
echo "당신의 IP는 ".$_SERVER['REMOTE_ADDR']."입니다.";
print_r($_GET);
echo "name : ".$_GET['name'];
echo "<br>";
echo "company:".$_GET['company'];
echo "name : ".$_REQUEST['name'];
echo "<br>";
echo "company:".$_REQUEST['company'];
print_r($_POST);
print_r($_REQUEST);
?>
<a href="<?=$_SERVER['PHP_SELF']; ?>?a=b">b값을 가져오기</a>
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>Document</title>
</head>
<body>
<form method="post" action="6.php" autocomplete="off">
이름: <input type="text" name="name"><br>
회사: <input type="text" name="company">
<button>전송</button>
</form>
</body>
</html>