happy cat image

everdevel

coding

login
알림X
  • 현재 댓글에 대한 답변만 표시합니다.
  • 표시할 댓글 이력이 없거나 로그인해 주세요.
























에버디벨이 만든 무료 클라우드 개발환경을 소개합니다.

방문해 주셔서 감사합니다.

오토로드

앞에서 클래스는 한 파일당 한개의 클래스를 생성한다고 했었죠?
디즈니에 대한 클래스가 disney.php에 있고 marvel에 대한 클래스가 marvel.php 파일에 있다고 했을 때
이 디즈니와 마블의 클래스를 모두 사용하는 파일 show.php가 있다고 하면
show.php 파일에서는 disney.php와 marvel.php 파일을 include하고 인스턴스를 생성할거에요.
다음과 같이

include "disney.php";
include "marvel.php";

$disney = new disney;
$marvel = new marvel;

위와 같은 경우는 단순한 예를 든것이고 정말 대형의 프로그램은 여러가지 클래스들을 include하게 됩니다.
프로그램이 복잡해지면서 인간의 실수로 include하지 않았는데 인스턴스를 생성할 수도 있을거에요.
또 매번 해당 파일을 include하고 인스턴스를 생성하는것도 귀찮은 일이기도해요.
오토로드를 사용하면 이것을 더 쉽게 구현할 수 있습니다.
이것은 인스턴스한 에버디벨의 코딩 에디터로는 실행에 어려움이 있으므로 EEOS에서 실행해 주세요.

오토로드 사용 방법

function __autoload(클래스명을 담을 파라미터명)
{
    include 클래스명을 담을 파라미터명.'.php';
}

__autoload 함수는 인스턴스를 생성하면 자동으로 호출되는 함수입니다.
그리고 해당 클래스명이 전달인자로 사용됩니다.
위의 사용방법에서 클래스명을 담을 파라미터명을 $className으로 한다면 다음과 같겠죠?

function __autoload($className)
{
    include $className.'.php';
}

즉 저렇게 설계되어있기 때문에 클래스를 선언한 파일명은 규칙이 정해져있어야해요.
만약 여러분이 파일명과 클래스명을 일치 시킨다면 위와 같이 사용하면 됩니다.
그게 아니고 나는 클래스명-class.php 이렇게 사용하겠다.
그러면 다음과 같이 변경해야겠죠.

function __autoload($className)
{
    include $className.'-class.php';
}

자 그럼 예제를 통해서 볼까요.

eeos에서 하시면 편리하지만 에버디벨 코딩 에디터에서도 이 에제를 실행 할 수 있게끔 조치를 취했으므로 바로 실행하셔도 결과를 확인할 수 있습니다.
미리 marvel.php와 dinsey.php 파일을 만들었어요. 다음은 disney.php 파일의 내용입니다.

<?php
	class disney
	{
		function hello()
		{
			return 'disney';
		}
	}
?>

결과는 바로 아래에서 확인하겠습니다.

이제 marvel.php 파일을 만들게요.

<?php
	class marvel
	{
		function hello()
		{
			return 'marvel';
		}
	}
?>

결과는 바로 아래에서 확인하겠습니다.

이제 disney, marvel 클래스의 인스턴스를 생성하는 예제입니다.
가장 중요한 예제죠.

<?php
    function __autoload($className)
    {
        include $className.'.php';
    }

    $mickey = new disney;
    echo $mickey->hello();
    echo '<br>';
    $ironMan = new marvel;
    echo $ironMan->hello();

?>

결과는 바로 아래에서 확인하겠습니다.

이 코드의 결과

인스턴스를 생성하니까 클래스명이 전달인자가되어 __autoload 함수가 자동 실행되어 명령을 실행했습니다. ^^

<?php
    function __autoload($className)
    {
        echo "{$className}.php을 include합니다.";
        include $className.'.php';
    }

    $mickey = new disney;
    echo $mickey->hello();
    echo '<br>';
    $ironMan = new marvel;
    echo $ironMan->hello();

?>

결과는 바로 아래에서 확인하겠습니다.

위 코드의 결과

이렇게 오토로드에 대해서 알아봤습니다. ^^


봐주셔서 감사합니다. 문의 또는 잘못된 설명은 아래의 댓글에 부탁드립니다.
당신의 작은 누름이 저에게는 큰 희망이 됩니다.

학교나 학원에서 배우는 것과는 완전히 다른 분위기, 다른 방식으로 들려주는 수학이야기입니다. 수학을 공부하면서도 괴로워하고 힘들어하는 학생들의 마음을 달래주려는 의도로 쓰여진 책입니다. 학생들이 수학과 친해질 수 있도록 도와주기 위해 이야기를 시작하는 점이 색다릅니다. 그냥 설득하는 것이 아니라 가장 좋은 방법인 다른 사람들의 사례들을 들려줍니다. 수학과 친하게 된 사람들의 경험담들. 누군가 어떤 경험을 했다는 것은 내 자신도 경험 가능한 옵션의 테두리 안으로 들어올 수 있다는 것이니까요. 그 다음은 바로 수학공부하자 하지 않고 게임들을 먼저 소개해줍니다. 바둑알, 화투, 트럼프 카드, 등등 우리 주변에 있는 것들을 이용해 친구, 가족과 쉽게 즐기며 논리력을 키울 수 있는 게임들입니다. 초등학교 때부터의 수학 교과 내용이 어떻게 연결되는지 설명하는데, 각 단원 별 의미와 배경을 알려 줍니다. 중학교 수학과정들을 파트별도 정리하여 전체적인 면을 보여줍니다. 마치 산책이나 갈까 했다 동네 뒷산 올라가서보니 뜻밖에 우리 동네가 이렇게 생겼구나 하는 사실을 깨닫게 되는 느낌입니다. 시험과 성적 올리기 비법 이야기는 전혀 안하면서 수학 공부하라고 부드럽게 둘레길처럼 이야기하는 독특한 책입니다. 수학 이야기책, 수학 교과과정 해설서, 가이드북, 혹은 힐링책처럼도 느껴집니다. 이유도 모른 채 뭘 자꾸 풀이하라고 하는 수학이 지루하고 답답하고 화가 날 때 이 책에 담긴 무척 포괄적인 내용을 알고 있다면, 기억한다면 격렬한 거부감이 누그러들지도 모르겠습니다.

컨텐츠의 내용을 더 보려면 바로 아래에서 확인할 수 있습니다.


    
    

강좌로 돌아가기

댓글 0개

정렬기준