php

php 기본 문법

hojomu 2023. 8. 9. 11:08

1. 변수선언

 - 변수 타입을 지정하지 않아도 값에 따라 타입이 지정된다

<?php

// $변수명 = 값; 
$variable = value;

 

2. 출력

 - php파일을 읽어서 문자열이나, 숫자, html 파일 등 까지도 출력할 수 있다

<?php
// 문자열
echo 'Hello World';

// 변수 선언
$raw = '22. 11. 1968';
$start = DateTime::createFromFormat('d. m. Y', $raw);
// 변수 출력
echo 'start date' . $start->format('Y-m-d') . PHP_EOL;

// PHP_EOL 은 개행을 의미한다.

 

3. 메소드 사용

<?php
$raw = '22. 11. 1968';
$start = DateTime::createFromFormat('d. m. Y', $raw);

// 변수 복사
$end = clone $start;

// 메소드 활용
$end -> add(new DateInterval('P1M6D')); // P 는 Period
$diff = $end -> diff($start);

echo 'Difference: ' . $diff -> format('%m month, %d days (total: %a days)') . PHP_EOL;

 

4. 비교 연산자 사용

<?php
if($start < $end){
	echo "Start is before the end" . PHP_EOL;
}

 

5. 클래스 활용, 반복문

 - 클래스로 부터 특정 기능들을 활용할 수 있다.

DateInterval 로 날짜의 시간간격(규칙)을 지정하고

DatePeriod 로 날짜를 특정화 해보자

<?php
$periodInterval = DateInterval::createFromDateString('first thursday');
var_dump($periodInterval);
echo '띄어쓰기' . PHP_EOL;
print_r($periodInterval);

 - $periodInterval 변수에 날짜의 시간간격(규칙)을 나타내는 객체를 저장했다.

객체의 형태를 확인하려면 var_dump($variable) 또는 print_r($variable)을 활용한다.

<?php
$periodIterator = new DatePeriod($start, $periodInterval, $end, DatePeriod::EXCLUDE_START_DATE);
foreach ($periodIterator as $date) {
    // 지정된 기간 안에 있는 모든 날짜를 출력한다.
    echo $date->format('Y-m-d') . ' ';
}

 - new DatePeriod 에 (시작날짜, 시간간격, 끝나는날짜, 시작날짜 포함여부) 를 넣어서 $periodIterator 변수에 저장하고

foreach 문을 활용해서 하나씩 출력했다.

 

new DatePeriod(start , interval , end , DatePeriod:: ) 의 결과는 특정 조건을 만족하는 객체이고,

다음과 같이 foreach 반복문을 거치면

foreach($periodIterator as $date){ $date } 내부에서 

class DateTime#6 (3) {
  public $date =>
  string(26) "1968-11-28 11:02:13.000000"
  public $timezone_type =>
  int(3)
  public $timezone =>
  string(10) "Asia/Seoul"
}

DateTime 클래스를 반환한다. 이것을 $date -> format('Y-m-d') 로 포멧해서 사용할 수 있다.