2013-12-16 6 views
10

나는 PHP에서 초보자이기 때문에 객체 지향을 배우려고 노력하고있다. 나는 약간의 아이디어를 가지고 있지만 명확한 개념이 없다. 그래서 나는 거기에 온다. 크레이트 클래스 및 다른 PHP 페이지에서 호출하는 방법. 예를객체 지향 PHP 클래스 간단한 예제

에 대한

은 내가 두 클래스의 하나가 show name이고, 두 번째는 enter name 좁은 방 클래스 쇼 이름 데이터베이스에있는 데이터베이스와 두 번째 클래스 넣어 이름에서 온이 이름을합니다.

Index.php는

<form action="checking.php" method="post"> 
     <input type="text" placeholder="Please enter name"> 
</form> 
+2

두 가지 클래스가 필요하지 않습니다. 데이터를 추가하는 두 가지 방법과 데이터베이스에서 데이터를 가져 오는 것입니다. –

+0

setter 및 getter 속성을 사용하십시오. –

+0

@DipeshParmar 네, 맞아요. 제안을 위해 한 클래스의 고마움이 필요합니다. –

답변

13

방법 당신이 PHP 페이지가 좋은 요구하고있다. 그것은 HTML에서 온 것입니다.

내가 생각하기에, 당신은이 잘못을 알고 있습니다. showName 클래스는 데이터베이스에서 이름을 가져오고 enterName은 데이터베이스에 저장합니다. 글쎄 하나의 단일 클래스 내에서 함수가되어야한다고 제안합니다.

<?php 
class Name 
{ 
    public $name; 
    public function showName() 
    { 
     /** 
     Put your database code here to extract from database. 
     **/ 
     return($this->name); 
    } 
    public function enterName($TName) 
    { 
     $this->name = $TName; 
     /** 
     Put your database code here. 
     **/ 
    } 
} 
?> 

checking.php에서 당신은 포함 할 수 있습니다 : 당신이 이것을 달성 할 수

<?php 
    include_once("name_class.php"); 
    $name = $_POST['name']; //add name attribute to input tag in HTML 
    $myName = new Name(); 
    $myName->enterName($name); //to save in database/ 
    $name=$myName->showName(); //to retrieve from database. 
?> 

이 방법은, 이것은 단지 개요입니다. 그것은 그 이상입니다.

+1

코드에 오류가 있다고 생각합니다. PHP 예외를 던질 것이기 때문에'$ this->'다음에'$'를 넣을 수 없습니다. 'this -> $ name = $ TName; 라인을 보아라. – RPDeshaies

+0

@ Tareck117 : 맞다 !! 나는 편집을했다. –

3

당신은 클래스 사람과 두 가지 방법을 만들어야합니다 ..

class Person{ 
    public $name; 
     public function showName() 
     { 
      echo $this->name; 
     } 

     public function enterName() 
     { 
      //insert name into database 
     } 
} 
+0

메소드 내에서 "에코"하지 않아야합니다. 그냥 "반환"하고이 클래스의 사용자가 주어진 데이터로 무엇을하고 싶은지 결정하게하십시오. – Mischa

+2

@MischaBehrend, 반품은 좋습니다. 그러나이 메소드는 getName()이 아닙니다. getter/setter를 얻거나 설정하는 것은 좋을 것입니다. 어쨌든 2 년 후이 대답에 관심을 가져 주셔서 감사합니다. –