PHP 기본 문법

최준호·2023년 4월 7일
0
post-custom-banner
  • 클래스, 메소드 , 인스턴스 생성.
<?php 
class Grammer
{
	public $name = "GNUWIZ";

	public function phpStudy($year)
	{
		echo "변수 name은 {$this->name} 입니다. <br/>";
		echo "변수 year은 {$year} 입니다. <br/>";
		echo $this->name . $year .   "<br/>";
	}
}


$year = 2022;
$grammer = new Grammer();
$grammer->phpStudy($year);

출력 값.

php는 클래스 선언 가능하고 메서드 정의가 가능하다.

grammer=newGrammer();인스턴스생성.grammer = new Grammer(); 인스턴스 생성.grammer->phpStudy($year); 해당 클래스에서 선언한 메서드를 호출합니다.


  • 식별자

변수를 이름을 지정할 때 규칙을 가지면 좋습니다.
다음과 같은 예로

캐멀 케이스 대문자 시작한 이름 -> 클래스
스테이크 케이스 -> 괄호 있다면 함수
-> 괄호 없다면 변수

MemberList - 클래스
member_list() - 함수
member_list - 변수

  • 지역 변수
    지역 범위는 선언된 코드 블록 내에서 변수의 제한된 경계입니다. 제한된 지역 범위 내의 변수를 해당 특정 코드 블록의 지역 변수라고 합니다.
<?php

function myFnc()
{
	$str = "legend";
	echo "변수 str의 값은 : {$str}";
}

myFnc();
echo "변수 str의 값은 : {$str}";

함수 외부에서 함수 내부 변수를 호출 시 오류 발생

  • 전역 변수
    함수 외부에서 선언된 변수는 전역 범위 범위를 가지며 함수 밖에서 정의된 변수는 함수 안에서는 사용할 수 없습니다.
<?php
$str = "PHP";

function myFunc()
{
	echo "<p>변수 값은 $str </p>";

}

myFunc();
echo "<p>변수 값은 $str </p>";

php는 전역 변수를 함수 내부에 사용할 수 없다.

하지만 global 키워드를 사용하면 함수 내부에서 전역변수 사용 가능

<?php
$str = "PHP";

function myFunc()
{
	global	$str;
	echo "<p>변수 값은 $str </p>";

}

myFunc();
echo "<p>변수 값은 $str </p>";

  • 정적 변수

정적 변수는 지역 범위의 변수.
지역 변수와의 차이는 범위 경계 밖에서는 소멸되지 않는다. 변수는 함수 내에서 static로 정의할 수 있다.

<?php
function myFuc()
{
	static $x = 0;
	echo "<p> 변수 x의 값은 : {$x} </p>";
	$x++;
}
myFuc();
myFuc();
myFuc();

정적 변수는 값을 유지하는 것이므로 0이 출력되지 않고 본래 값을 가진다.

static은 함수 밖에서 사용 할 수는 없다

  • const 변수
<?php

const Hello = '안녕하세요 ';

class Myclass
{
	public const MESSAGE = '저는 PHP 공부를 합니다';

	public static function foo()
	{
		// const BYE = '잘가';
		// const 변수는 함수 내부에서 선언 할 수 없다.
	}

}

echo Hello;
echo Myclass::MESSAGE;


?>

프로퍼티(범위연산자 ::) 형태로 선언한 const 상수는 사용이 가능하다는 점을 기억해야 할 것입니다.

배열 생성 방식

<?php
$fruit = array(
	"apple"=>"사과",
	"banana"=>"바나나",
);

echo $fruit["apple"];
echo $fruit[banana];

배열 내 key값이 정의되지 않았기에 오류 발생.

  • 매직 상수

현재의 코드의 라인이나, 파일, 디렉터리,메소드의 이름을 출력 시킬 수 있습니다.

<?php
class A {
    public function __construct()
    {
        echo __CLASS__; // 해당 클래스명 A가 출력됩니다.
    }

    public function sayHello()
    {
        return __METHOD__; // 해당 '클래스명::함수명' 의 형태로 출력됩니다.
    }
}

$say = new A();
// $say라는 변수에 class A를 담는다.
echo "<br/>";
echo $say->sayHello();

업로드중..

profile
변화를 두려워하는 사람이 가장 불행한 사람이다.
post-custom-banner

0개의 댓글