처음부터 차근차근

PHP 기본 정리 본문

프로그래밍/PHP

PHP 기본 정리

_soyoung 2021. 10. 3. 16:09
반응형
문자열 합치기
<?php
    echo "hi"."soyoung";
?>
//결과 hisoyoung

php에서 .연산자는 왼쪽에 있는 문자열과 오른쪽에 있는 문자열을 합쳐서 하나의 문자열로 만드는 기능을 한다.

 

 

 

문자열 길이 알아내기
echo strlen("coding");
//결과 : 6

strlen()메서드를 쓰면 매개변수로 들어온 문자열의 길이를 숫자(int)로 반환해준다. 

 

 

 

데이터 타입 알아내기
var_dump(10);
//결과 : int(10)
var_dump(10 + 1);
//결과 : int(11)
var_dump('10');
//결과 : string(2) "10"
var_dump(10==10);
//결과 : bool(true)
$arr = array('aa', 'bb', 'cc'); // 나중에 나옴
var_dump($arr);
//결과 : array(3) { [0]=> string(2) "aa" [1]=> string(2) "bb" [2]=> string(2) "cc" }

var_dump()메서드는 그 자체만으로 출력이 되기 때문에 따로 echo문이나 printf문이 필요없다.

 

 

+ array의 데이터 타입 출력하는 법

$arr = array('abc', 'def', 'ghi');
print_r($arr);
// 결과 : Array ( [0] => abc [1] => def [2] => ghi )

 

 

 

값이 세팅되었는지(값이 존재하는지) 알아내기
$a = 1;
if (isset($a)) {
    echo "set!!!"
}
//결과 : set!!!

isset은 값이 null 일때(존재하지 않을 때) false를 반환하는 것이다.

그래서 $a = '';이렇게 대입해주면 null이 아니기 때문에 값이 있다고 판단한다.

 

isset는 반환형식이 true or false이기 때문에 echo로 그냥 출력이 안되고 var_dump()메서드를 사용해서 출력해야 한다.

ex) var_dump(isset($a));

 

+ empty()   vs   isset()

empty()메서드는 값이 비어있는지를 체크하는 함수이다.

반환형식은 isset과 같이 boolean이다.

값이 비어있을 때 true를 반환하고, 값이 비어있지 않을 때 false를 반환한다.

그런데 여기서 isset()메서드와 차이가 있다.

 

empty()함수는 아래와 같은 상황을 모두 값이 비어있다고 간주한다.

  • NULL
  • "" (빈 문자열)
  • 0 (정수 0)
  • "0" (문자열 0)
  • FALSE
  • array() (빈 배열)

즉, isset()은 null이면 값이 없다고 생각하는 반면, empty()는 null이 아니어도 위와 같은 상황에서 모두 값이 없다고 판단한다.

 

 

 

 

변수
$num = 1;
echo $num + 1;
//결과 : 2

php에서는 변수 앞에 $를 붙여 변수를 나타낸다.

 

 

 

배열
$arr = array('abc', 'def', 'ghi');
echo $arr[0].'<br>';
echo count($arr); // 배열의 원소 개수 세는 함수
//결과 : abc 3

arr변수에 array를 넣은 것이다.

배열을 정의할려면 꼭 변수 안에 넣어야 한다.

arr은 array의 이름이 된다.

count()메서드를 통해 배열의 길이를 알 수 있다.

배열에다 값을 추가하는 방법

$arr = array('abc', 'def', 'ghi');
array_push($arr, 'jkl', 'mno'); // 배열 뒤에다 원소 추가
var_dump($arr);
// 결과 : array(5) { [0]=> string(3) "abc" [1]=> string(3) "def" [2]=> string(3)
//"ghi" [3]=> string(3) "jkl" [4]=> string(3) "mno" }

array_push()메서드를 이용하면 배열의 맨 뒤에다가 원소를 새로 추가할 수 있다.

 

 

 

 

url 파라미터

 

url에 ?파라미터명=값 하면 값이 파라미터 명으로 값이 웹페이지에 보내진다.(파라미터를 2개 이상 보낼 때 : &로 연결)

<?php
    echo $_GET['파라미터명']; // GET방식일 때
    echo $_POST['파라미터명']; // POST방식일 때
    echo $_REQUEST['파라미터명']; // GET방식, POST방식 둘다 사용 가능
?>

이러면 파라미터의 값을 출력할 수 있다.

ex) 주소창 : localhost\urlParameter.php?number=2&say=coding

echo $_GET['number']; 

echo $_GET['say']; 

결과 : 2

coding

 

 

 

 

file 읽어오기
echo file_get_contents("파일경로");

ex) echo file_get_contents("data/".$_GET['title']);

data폴더 밑에 url파라미터로 받은 값(파일이름) 파일을 찾아 그 내용을 출력한다.

 

주의 : file_get_contents()메서드는 보안면에서 좋지 않은 함수이다.

 

 

 

 

file에다 내용 수정하기
file_put_contents("파일경로", 추가할내용);

파일 경로로 가서 파일의 내용을 다 지우고, 뒤에 매개변수로 넣은 내용으로 수정하는 함수이다.

* 파일 경로에 파일이 없으면 새로 파일을 만들고 내용을 추가한다.

 

ex) file_put_contents("abc.txt", "hi~~");

현재 위치에서 abc.txt폴더를 찾아서 "hi~~"라는 원래 있던 내용을 다 지우고, 내용을 입력한다.

 

 

 

 

디렉토리 내의 파일 목록 조회
var_dump(scandir("디렉토리 경로"));
//결과 예시 : array(5) { [0]=> string(1) "." [1]=> string(2)
//".." [2]=> string(3) "css" [3]=> string(4) "html" [4]=> string(10) "javascript" }

scan(스캔하다) + dir(디렉토리를) 

디렉토리를 스캔하여 디렉토리 안에있는 모든 파일을 조회하는 것이다.

 

반환 형식이 array이다.

그래서 아래에 있는 것도 가능하다.

$a = scandir("./data");
echo $a[2];
// 결과 : css

 + .과 ..의 의미

. : 현재 디렉토리

.. : 부모 디렉토리

 

 

 

 

일의 흐름

 

일의 핵심은 2가지로 이루어져있다.

1. 작업

2. 시간의 순서(에 따라 일을 처리함)

코드도 마찬가지로 시간의 순서에 따라 위에서 아래로 작업이 실행이된다.

실행되고 있는 작업을 제어하여 조건에 따라 실행하는 것이 조건문,

실행되고 있는 작업을 제어하여 어떤 조건이 참이면 반복하는 것이 반복문이다.

시간에 따라 순서대로 실행되는 상황을 제어하기 때문에 이 두 개를 제어문이라 한다.

이 설명을 듣고 진짜 감탄했다...

 

 

 

 

php의 데이터 타입

 

1. boolean

2. integer

3. float

4. string

 

char형과 double형이 없다...

 

 

 

 

php의 비교 연산자

 

1. == : 왼쪽과 오른쪽이 같다.

2. === : 왼쪽과 오른쪽이 같, 타입까지 같다.

3. != : 왼쪽과 오른쪽이 다르다

4. !== : 왼쪽과 오른쪽이 다르거 타입이 다르면 참을 반환한다.

5. <> : 왼쪽과 오른쪽이 다르다(!=와 같음. 우선순위만 다름)

6. <, >, <=, >=

 

 

 

 

제어문
//if문
if(true) {
}
else {
}
//while문
while(true) {
}
//foreach문
foreach (배열명 as 값 변수) { // 이건 특이하게 배열명이랑 값변수가 반대임
}
//for문
for($i=0; $i<=100; $i++) {
}

거의 다른 언어랑 비슷하다.

 

 

 

 

코딩 습관에 대하여

 

php와는 별개로 코딩 습관에 대하여 하는 좋은 이야기를 들었다.

코딩을 하기 전에 먼저 뭘 만들건지 글로 작성해보는 것이다(아니면 말로 해보는 것도 좋음).

이렇게 하는게 생각보다 어렵다.

하지만 이걸 하고나면 내가 뭘만들지 머릿속에서 정리가 되서 한결 더 개발자답게 코딩할 수 있다!

 

 

 

 

 

 

출처 : 'WEB2-PHP' - 생활 코딩 변형 및 요약

반응형

'프로그래밍 > PHP' 카테고리의 다른 글

date time을 오전 00:00, 오후 00:00로 나타내기  (0) 2022.06.06
date를 '~일 전', '~ 분 전' 으로 나타내는 방법  (0) 2022.02.19
PHP 보안  (0) 2021.10.05
PHP 기본 정리 2  (0) 2021.10.04
PHP의 원리  (0) 2021.10.02
Comments