[인프런]PHP 7+ 프로그래밍 #session0

정재훈·2022년 7월 28일

00 - 환경
PHP 7.4.21
VC15 x65 Thread Safe

제어판 - 고급 시스템 설정 - 환경 설정 - 새로만들기 - 경로 복사

찾기 - EXTENSIONS

MySQL
MySQL Community 버전

vs code 디버그 설정
extension - php Extension Pack 설치, php Debug - php 74.vc15 TS

phpinfo();
echo "Hello, world";

php -S localhost:8080

run - add configuration

Launch Currently

php에서 주석치는 방법
1. //
2. #




echo -> echo 'Hello, world';

print -> print

exit; : 아래 있는 것은 실행이 안되고 중단

  • die;

html 템플릿
html

php -S localhost:8080 -t lang/BasicSyntax/HtmlTemplate/

03 - 자료형(Types)
작은따옴표 뿐 만 아니라 큰 따옴표도 사용 가능

/**

  • Type Casting.
    */
    (String) 10; //-> "10"
    echo (String) false ; // "1"

var_dump(string) false // -"1"

null로는 타입캐스팅 불가능

(int)

04 - 자료형(Types)
배열도 값의 일종

$messages = [
'hello world',
'who are you?,
'bye'
];


/**

delete
-> unset($messages[3]);

$messages = [
'Hello, world'
];

05 - 변수(Variables)
: 값을 담는 메모리에 대한 공간

변수를 사용하는 방법
echo $message;

echo "The message is {$message}";

unset($message);

  • Variable variables

$varName = 'message'

varName = 'Hello. world'; 또는 ${varName} = 'Hello, world';

echo $message;

06 - 상수(Constants)
한번 지정하면 변하지 않음

const CONSTANT = "Hello world';
var_dump(CONSTANT);

const CONSTANT = [
'message' => 'Hello, world'
];
define('CONSTANT', Hello, world');

CONSTANT = 'Who are you?'; 수정x
var_dump(CONSTANT);

Magic Constants
echoDIR;

07 - 연산자 (Operators) 다시★

String Operators

'Hello'. 'world';
. -> 문자 연결

$message = null;

echo $message ??

var_dump(!true); -> false

var_dump( 10<->20); //false

08- 연산자 ( Operators)
Arihmetic Operators
2 + 2;
17 - 3.5;
10 / 3;
6 * 9;
4 % 3;
2 ** 4;

Incrementing/Decrementing Operators

$count = 0;

$count = $count =1;

count++++count++ ++count;
// echo $count++;

count=0;count = 0;count = count+1;count +1;count +=1; // -> 1

message=Hello,;message = 'Hello, ';message .= 'world';

echo $message; //-> Hello, world

비교연산자 > 논리연산자

true && 10 < 20 == true 10 > 20;

조건문 if else
if(true) {
echo 'Hello, world';
}

if(true) {
echo 'Hello, world';
}else {
echo 'Bye';
}

if(false) {
echo 'Hello, world';
} elseif(true) {
echo 'who are you?';
} else {
echo 'Bye';
}

10 - 반복문 (for, foreach) (1)
for($i -1; $i < 10; $i++) {
echo $i;
}

$messages = [
'Hello, world',
'who are you?'
'Bye'
];

for (i= 0; $i < count(messages); i++) { echo $messages[i]. PHP_EOL;
}

PHP_EOL; -> Enter처리

11 - 반복문 (while, do ~ while) (2)
1) while

2) do ~ while

12 - 함수
프로그램을 구성하는 단위
작은 코드의 집합
증복을 제거

arguemnt 다시★

13 - 함수 (2) 다시★


함수는 리턴하면 끝

first class function
함수를 값으로도 담을 수 있음

$foo = function () {
return 'Hello, world';
};

echo $foo();

function foo($callback)
{
$callback();
}

foo(
function() {
return 'Hello, world';
}
);
function foo2() {
return function () {
return 'Hello, world';
};
}

$func = foo2();
echo $func();

higher-order function

14 - 함수 (3)
Variable Scope

  • Access Global Variables
  • Static variables

함수 호출이 끝나면 local 변수, 밖에 있는 것을 Global변수라고 한다.

  • Clousre

  • ConstantsScope
    function foo()
    {
    define('MESSAGE', 'Hello, world');
    const MESSAGE = 'Hello, world');
    }

foo();
echo MESSAGE; // -> Hello, world

  • Callbacks (Don't need 'use')
    $foo = function () {
    return MESSAGE;
    };

echo $foo();

  • Arrow Functions(7.4)

15 - 코드 분할(include, require)

파일을 나눠서 작성하는 방법

include
include 언어구조는 여러 개의 php 문서가 있을 때, 소스코드를 포함시킬 때 사용
대부분은 상대경로를 사용
php.ini 설정을 바꾸면 URL 형태로도 포함시킬 수 있으나 보안의 측면에서는 좋지 않음
문맥과 스코프를 동일하게 가져갈 수 있고 함수 내부에서 포함시키면 스코프는 함수

include_once
_once 가 붙으면 해당 파일을 한번만 포함시킨다.즉 평범하게 include를 사용하면 여러번 포함시킬 수 있음. 따라서 중복으로 포함되는 경우를 막을 때 사용

include_once 'HelloWorld.php';

require
require 언어 구조 또한 include처럼 파일을 포함시킬 때 사용 차이점은 include는 파일을 포함시키지 못할 경우 경고만 던지는 반면 require는 반드시 있어야하므로 에러를 던지게 됩니다.

require_once
include_once 와 마찬가지로 파일을 한번만 포함

  1. 어떤 문서를 include 또는 require 를 하면 그쪽으로 문서를 포함시킴

  2. return [
    'message' => $message

  3. 포함하는 쪽으로 값을 넘겨줄 수 있음


message라는 키, message라는 변수

profile
코린이

0개의 댓글