<?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->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이 출력되지 않고 본래 값을 가진다.
<?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();