일부 작업을 수행하는 함수를 작성해야하는 경우가 있으며이 작업을 수행하려면 데이터베이스에 연결해야합니다. 함수가 작동하려면 SQL 객체를 호출 할 때 SQL 객체를 전달해야합니다. 여기에 더 잘 설명하기 위해 예입니다함수 인수를 SQL 개체로 건너 뛰기
function get_all_students($db)
{
$stmt = $db->prepare("SELECT * FROM students");
$stmt->execute();
// and the rest of the code
}
문제 :
내가 인수로 $DB
을 통과 할 필요없이 함수를 선언하고자합니다. 이 용도로 세션을 사용하지 않는 것이 좋습니다. 내 모든 페이지에서, 맨 위에이기 때문에
이 코드 포함 :
$db = new mysqli(SETTING);
다음이 정의되어 있기 때문에 기능은 이미 $의 DB를 알고 있어야하지만 그것이 전까지하지 않습니다 인수로 $db
이 전달되었습니다.
가변 범위가 작동하는 방식입니다 (http://www.php.net/manual/en/language.variables.scope.php). OOP를 사용하고 있다면 의존성 주입을 권하고 싶지만 단일 함수로 매개 변수로 전달하는 것이 가장 좋은 해결책입니다. – jeroen