본문 바로가기

반응형

PHP

(6)
[php] 자주 쓰는 함수 정리 (시간, 파일, 문자열, 숫자) - 시간 다루는 함수 - // 시간대 한국으로 맞추기 date_default_timezone_set('Asia/Seoul'); // 1970-01-01 00:00:00 기준으로 몇 초 지났는지 계산해 주기 mktime(시, 분, 초, 월, 일, 년); $point = mktime(12,56,36,'01','02','1970'); echo $point; $target = mktime(0,0,0,'11','29','2021'); echo "\n"; // date("format") - 현재 시간을 포맷에 맞게 뽑아 줌 / date("format", "unix time") 19700101 을 기준으로 몇 초 지났는지 넘겨주면 그 날짜를 계산해서 포맷에 맞게 뽑아 줌. echo date("Y-m-d", $targ..
php 에 존재하는 scope 는 두 종류다. (글로벌 변수, 함수 변수) - php에 존재하는 scope 종류 - php에는 scope가 딱 두 종류 있습니다. 하나는 글로벌 스코프고, 다른 하나는 함수 스코프입니다. 다른 언어들처럼 블록 스코프가 존재하지 않습니다. 글로벌 스코프, 아니면 함수 스코프이기 때문에 함수 안에서는 블록과 상관없이 자유롭습니다. 블록 안에서 정의한 변수일지라도 블록 밖에서 접근할 수 있습니다. 반대로, 블록 밖에서 정의한 변수를 블록 안에서 접근할 수도 있습니다. function foo(){ if (true) { $var = "hello big world"; } echo $var; //=>"hello big world" } - 글로벌 스코프와 함수 스코프 사이의 독립성 - 글로벌 스코프와 함수 스코프는 서로 따로 존재합니다. 함수 안에서 선언한 변..
[php] usort 사용법과 예시 (ft. 클로저 함수) php 에서는 array를 정렬하는 여러 가지 함수가 있다. asort, rsort, ksort, krsort 등등이 있다. key 값을 기준으로 오름차순으로 정렬, value 값을 기준으로 오름차순으로 정렬, 또는 내림차순으로 정렬해 주는 기능이다. 근데 php가 기본적으로 제공해 주는 정렬 함수들 중에 내가 원하는 기준이 없다면 어떻게 해야 할까? 정렬하는 기준을 내가 직접 지정해 줄 수도 있다. 바로 usort 라는 함수를 이용하면 가능하다. usort($arr, "ucmp"); $arr라는 배열을 가져와서 정렬하고, 정렬하는 기준은 "ucmp"라는 함수라는 뜻이다. 그러려면 먼자 ucmp라는 함수를 만들어 놓아야 한다. ucmp에 대해서 조금 더 자세히 알아보자. ucmp라는 이름의 함수를 찾아서..
[php] require / include 차이와 사용법 예시 / _once 붙이면? 자주 쓰는 코드는 그냥 파일로 하나 만들어서 따로 저장해 두고 필요할 때마다 불러다가 쓰면 편하다. 필요한 로직을 파일마다 새로 써 두면 길어지고 읽기도 어렵고 수정할 때도 여러 파일을 수정해야 한다. 파일을 부르는 방법은 두 가지가 있다. require / include 공통점은 둘 다 외부 파일 불러온다는 것이다. 쓰는 방법도 똑같다. > require('name.php'); > include('name.php'); 그렇다면 차이는 무엇일까? 불러오려던 파일을 불러오지 못했을 때 어떻게 반응하는가가 다르다. include는 아무 일 없던 듯이 그 다음 코드를 이어서 실행한다. require는 그 자리에 멈춰서 에러를 낸다. _once를 붙이면 기능이 어떻게 달라질까? 'require'와 'includ..
[php] namespace 란? 그 의미와 쓰는 이유는? 예시 - namespace 가 필요한 상황 - Hello() 라는 이름으로 클래스를 만들려고 한다. 물론 이름이 겹치지 않도록 하는 게 일단 가장 좋겠지만, 똑같은 이름으로 여러 클래스가 존재할 수도 있다. 아래는 예시다. class Hello { function __construct() { echo '안녕하세요. 환영합니다.'; } } class Hello { function __construct() { echo 'Nice to meet you. Welcome.'; } } %obj = new Hello(); 만약 이렇게 실행하면 어떤 쪽이 실행될까?. 똑같은 이름으로 Hello 클래스가 두 개 존재하는데, Hello 인스턴스를 만들면 누구를 만들게 될까? - namespace 의미와 쓰는 이유 - 이런 경우..
php 에서 spl_autoload_register 의미 - autoload - spl_autoload_register('loader2'); => 이 함수가 의미하는 바가 무엇일까? 뒤에서 어떤 인스턴스를 만들려고 한다. 그런데 만들려고 하는 인스턴스를 못 찾을 때가 있다. 그럴 때는 'loader2'라는 함수를 실행하라는 뜻이다. 예를 들어 보자. > spl_autoload_register('smallAutoloader'); > $obj = new Hello(); 'Hello'라는 클래스를 찾아 와서 인스턴스로 만든다. 그렇게 만든 인스턴스는 obj라는 변수 안에 넣어 둔다. 근데 'Hello'라는 클래스를 찾을 수가 없다. 그러면 'smallAutoloader' 라는 이름의 함수를 찾아서 실행한다. 실행할 함수를 익명함수로 바로 넣어 줘도 된다. - 어떤 ..

반응형