PHP/문법
최근 수정 시각: (5년 전)
1. 개요 [편집]
PHP 의 문법을 설명하는 문서다.
가장 많이 쓰는 PHP 7.2 버전을 기준으로 설명한다.
가장 많이 쓰는 PHP 7.2 버전을 기준으로 설명한다.
2. 기본 [편집]
기본적인 PHP코드는 다음과 같다
각 php파일은 <?php로 시작되며 끝태그(?>)는 php코드만 있을때 붙이지 말아야 한다.
PHP는 변수 선언시 $로 선언된다.
PHP에는 함수, 클래스, 트레이트, 인터페이스, 추상 클래스, 추상메소드 등이 있다.
PHP에서는 세미콜론을 붙여야한다.
각 php파일은 <?php로 시작되며 끝태그(?>)는 php코드만 있을때 붙이지 말아야 한다.
PHP는 변수 선언시 $로 선언된다.
PHP에는 함수, 클래스, 트레이트, 인터페이스, 추상 클래스, 추상메소드 등이 있다.
PHP에서는 세미콜론을 붙여야한다.
3. 편집 지침 [편집]
소스코드 예시
PHP 코딩스텐다드 PSR-1과 PSR-12를 지켜 주시길 바랍니다.
{{{#!syntax php 소스코드 }}}PHP 코딩스텐다드 PSR-1과 PSR-12를 지켜 주시길 바랍니다.
4. 변수와 자료형 [편집]
PHP에서 변수선언은 $로 시작하며 변수를 선언할때에는 자료형(타입)을 지정하지 않는다.
함수의 매게변수와 클래스에서는 타입을 지정할수있다.
타입은
* int : 정수형
* float : 실수형
* bool : true / false 인 boolean 값
* string : 문자열
* object : 객체
* callable: 호출 가능 함수
* null: null
* array : 배열 : PHP의 배열은 딕셔너리와 연결리스트의 기능이 합쳐져 있다.
* iterable : 객체인데 배열처럼 반복가능한 타입 PHP 7.1에서 도입 됨.
* undefined: 타입은 아니지만 이용할 수 없는 변수가 참조를 하면 표시된다.
그 밖에 유니온과 mixed 가 있다.
함수의 매게변수와 클래스에서는 타입을 지정할수있다.
<?php
$a = 1;타입은
* int : 정수형
* float : 실수형
* bool : true / false 인 boolean 값
* string : 문자열
* object : 객체
* callable: 호출 가능 함수
* null: null
* array : 배열 : PHP의 배열은 딕셔너리와 연결리스트의 기능이 합쳐져 있다.
* iterable : 객체인데 배열처럼 반복가능한 타입 PHP 7.1에서 도입 됨.
* undefined: 타입은 아니지만 이용할 수 없는 변수가 참조를 하면 표시된다.
그 밖에 유니온과 mixed 가 있다.
5. 기본 입출력 [편집]
기본 출력은 echo 와 print() 함수가 있다.
PHP는 처음부터 웹 서버와 템플릿 역할을 하기 때문에
입력 명령어는 두 분류로 나뉜다.
웹으로 사용자 요청 받을때
$_GET[]; // HTTP API의 get 을 할당
$_POST[]; // HTTP API의 post 를 할당
php://input // 그 밖에 입력
php파일을 서버에서 직접사용하거나 터미널에서 입력할때
file_get_contents('php://stdin');
<?php
echo "Hello world";<?php
print("Hello world");PHP는 처음부터 웹 서버와 템플릿 역할을 하기 때문에
입력 명령어는 두 분류로 나뉜다.
웹으로 사용자 요청 받을때
$_GET[]; // HTTP API의 get 을 할당
$_POST[]; // HTTP API의 post 를 할당
php://input // 그 밖에 입력
php파일을 서버에서 직접사용하거나 터미널에서 입력할때
file_get_contents('php://stdin');
6. 함수 [편집]
함수선언은 function 키워드로 한다.
매게 변수타입과 리턴타입을 지정할 수 도 있다.
리턴 타입은 함수이름 끝에 : 타입
* 익명 함수
말그대로 이름이 없는 함수다.
다른 변수에 대입해서 쓰거나 클로저에 사용된다.
또는 즉시 실행함수로 쓰일 수 도있다.
* 자기 실행함수 또는 즉시 실행함수라고 부른다. [1]
함수를 정의 함과 동시에 바로 실행된다.
<?php
function add($a, $b) // 정수 두개를 더하는 함수
{
return $a + $b
};
add(1, 2); // 함수 사용.매게 변수타입과 리턴타입을 지정할 수 도 있다.
리턴 타입은 함수이름 끝에 : 타입
<?php
function add(int $a, int $b ): int //
{
return $a + $b;
}
add(1, 2); // 함수 사용.* 익명 함수
말그대로 이름이 없는 함수다.
다른 변수에 대입해서 쓰거나 클로저에 사용된다.
또는 즉시 실행함수로 쓰일 수 도있다.
<?php
$addTest = function (int $a, int $b ): int // $addTest 라는 변수에 대입
{
return $a + $b;
};
$addTest(1, 2);* 자기 실행함수 또는 즉시 실행함수라고 부른다. [1]
함수를 정의 함과 동시에 바로 실행된다.
<?php
(function (int $a, int $b ): int
{
return $a + $b;
})(1,2 ); // 바로 실행됨7. 클래스 [편집]
//Animal.php
<?php
class Animal { // 동물에 관한 클래스
private $eatType; //먹이 종류
private $legs; // 다리갯수
function __construct($eatType, $legs)
{
$this->eatType = $eatType; //객체에 접근할때에는 -> 를 이용한다.
$this->legs = $eatType;
}
function getEatType(){
return $this->eatType;
}
function setEatType($eatType){
$this->eatType = $eatType;
}
function getLegs() {
return $this->legs;
}
function setLegs($legs) {
$this->legs = $legs;
}
}
//초식을 하는 네발 짐승
$animal1 = new Animal("초식", 4); // 객체 생성할때 new 를 쓴다.
$animal1->eatType = "잡식"; // $eatType 이 private 이라 접근불가
$animal1->getEatType(); // getter와 setter 를 만들어 접근해야한다.PHP 도 객체지향개념이 있다.
PHP에서 클래스는 전부 public 이다.
PHP 클래스에서 맴버변수는 private, public, protect 로 접근제한자를 지정할 수가있다.
생성자는 fucntion __constructor() 를 쓴다. // PHP 5부터 바뀐 문법.
클래스안에서 클래스의 프로퍼티에 접근할때는 "this->프로터피" 를 쓰며 $기호를 붙이면 않된다.
* 클래스의 상속
<?php
class bird extends Animal {
private $wings; //날개
function __construct($eatType, $legs, $wings);
{
parent::__construct($eatType, $legs); // 부모생성자는 parent:: 으로 호출
$this->wings = 2;
}
function getWings() {
return $this->wings;
}
function setWings($wings) {
$this->wings = $wings;
}
}
$비둘기 = new bird("잡식", 2, 2);
$삼족오 = new bird("잡식", 3, 2);
echo $비둘기->legs; // 2
echo $삼족오->legs; //3상속은 다른언어들과 마찬가지로 extends 키워드를 사용하며
부모생성자는 parent::() 으로 호출한다.
[1] IIFE
라이선스를 별도로 명시하지 않은 문서는 CC BY-NC-SA 2.0 KR에 따라 이용할 수 있습니다.
기여하신 문서의 저작권은 각 기여자에게 있으며, 각 기여자는 기여하신 부분의 저작권을 갖습니다.
문서의 기여자는 역사 탭에서 확인할 수 있습니다.
접두어의 N: - 나무위키 사용자, R: - 리그베다 위키의 사용자를 뜻합니다.
자세한 사항은 나무위키에서 동일한 문서의 역사를 참고하시기 바랍니다.