2017-12-10 13 views
0

현재 PHP를 배우고 있지만 문제가 있습니다.다른 파일의 정의 된 PHP 클래스가 작동하지 않습니다.

나는 이벤트를 만들고 이름, 날짜, 설명 및 가격을 설정/가져올 수있는 클래스가 있습니다. 현재 "class_lib.php"라는 파일에 있습니다.

<head> 
</head> 

<body> 

    <div id="content"> 
     <?php include 'class_lib.php'; ?> 
     <?php 
      $event = new Eventitem(); 
      $event->setName("Some Event"); 

      echo $event->getName(); 

     ?> 
    </div> 
</body> 

<footer> 
</footer> 
:

<?php 
class Eventitem 
{ 
    private $eventName; 
    private $eventDate; 
    private $eventDesc; 
    private $eventPrice; 

    function __construct() 
    { 
     $this->eventName = "BLANK"; 
     $this->eventDate = "January 1"; 
     $this->eventDesc = "..."; 
     $this->eventPrice = "$0.00"; 
    } 

    public function setName($name) 
    { 
     $this->eventName = $name; 
    } 

    public function getName() 
    { 
     return $this->eventName; 
    }  

    public function getDate() 
    { 
     return $this->eventDate; 
    } 

    public function getDesc() 
    { 
     return $this->eventDesc; 
    } 

    public function getPrice() 
    { 
     return $this->eventPrice; 
    } 
} 
?> 

이제 "blank.php"라고 내가 테스트 베드로서 사용하고 다른 파일에, 나는 클래스를 정의하고에서는 setName과 getName 메소드를 사용하려고

그러나 실행하면 아무것도 표시되지 않습니다. 내가 도대체 ​​뭘 잘못하고있는 겁니까?

+0

'필수'를 '요구'로 변경하십시오. 스크립트가 넘어지지 않습니까? – Scoots

+0

여전히 비어 있습니다. 넘어져서 무엇을 의미합니까? –

+0

이 클래스는 컴파일되지 않습니다. 인스턴스 속성은 PHP 4에서'var'을 사용하지만 PHP 5부터는 '[public],'protected' 또는'private'을 사용하여 선언해야합니다 (http://php.net/manual/en/language). oop5.visibility.php). 'var'을 제거하십시오. 또한 모든 메소드 (생성자 포함)의 가시성을 선언하는 것이 좋습니다. 기본 가시성이 '공개'이므로 코드에 필요하지 않으며 필요하지 않습니다. 그러나 일관성을 유지하고 모든 메소드의 가시성을 선언하는 것이 좋습니다. – axiac

답변

0

코드를 복사하여 내 localhost에 붙여 넣었습니다. 정상적으로 작동합니다.

enter image description here

은 당신이 여기에있는 것은 당신이 사용하려는 어떤 웹 서버를 통해 PHP 스크립트를 실행하는 문제입니다. <?php phpinfo(); ?>과 같은 PHP 스크립트를 실행할 수 있는지 확인하십시오.

+0

phpinfo()를 포함한 다른 웹 서버 (EasyPHP Webserver)를 사용하여 다른 스크립트를 실행했지만 정상적으로 표시됩니다. 문제가있는 것은 ** _ **이 스크립트입니다. –

+0

업데이트 : 문제가 해결되었습니다. 사소한 오타. –