require
해당 php파일을 불러온다
불러올 파일이 없으면 fatal error를 발생시킨다 (엄격한 로드방법)
include
해당 php파일을 불러온다
불러올 파일이 없으면 warning을 발생시킨다
require_once / include_once
_once를 사용하는 이유
require나 include를 사용하다보면 해당 php파일들 간에 중복으로 inlcide와 require를 중복호출하는 경우가 있다.
이러한 경우 기존에 사용되던 변수가 초기화 되며 성능상 이슈가 생긴다
그리나 _once를 사용하면 기존에 어디에선가 require이 된 적이있으면 다시 로드하지않고 기존에 로드된 내용을 사용한다
그러므로 안전성과 성능을 위해서 _once를 사용하는게 좋은것 같다
namespace
JAVA의 패키지와 비슷한 개념
디렉토리의 개념
클래스와 함수 그리고 변수에 대해 namespace를 사용가능
namespace A\B { } 등의 괄호로 감쌀수있다
use
namespace에 등록된 클래스나 함수를 사용할수 있게 함
사용전 require/include필요
/* index1.php */ <?php // 클래스1 namespace A\CLASS2; class TestClass{ function test(){ return "class1_test <br>"; } // 1.정적 함수이며 클래스명::함수명() 으로 사용가능하다 // 2.public을 사용하여 어느 파일에서든 사용가능하도록 하였다 public static function testStatic(){ return "class1_test_static <br>"; } } // 함수1 // 3. 아래의 함수 test와 동일한 함수명이지만 namespace를 사용하므로써 사용가능 namespace A\FUNCTION1; function test(){ return "function_test_1 <br>"; } // 함수2 namespace A\FUNCTION2; function test(){ return "function_test_2 <br>"; } // 변수1 namespace A\VALUE1; $test ="value_test_1"; /* index2.php */ <?php // 0.맨 처음에 해당파일을 불러와야한다 // 0.해당 require없이 사용하고 싶을땐 '오토로드'를 사용한다 require_once 'index1.php'; // 1.클래스 사용시 use A\CLASS2\TestClass; $testClassObj1 = new TestClass(); echo $testClassObj1->test(); // class1_test // 2.클래스 사용시 (use 사용안함) $testClassObj2=new A\CLASS2\TestClass(); echo $testClassObj2->test(); // class1_test // 3.클래스 사용시 (정적함수사용) echo TestClass::testStatic(); // class1_test_static // 4.함수 사용시 (네임스페이스를 그대로 사용하는 경우) echo A\FUNCTION1\test(); // function_test_1 // 5.함수 사용시 (네임스페이스를 별칭으로 사용하는 경우) use A\FUNCTION2 as function2; echo function2\test(); // function_test_2 // 6.변수에 사용시 use A\VALUE1; echo $test; // value_test_1
Feb 25, 2023
Views 129