2011-11-04 3 views
0

내 친구 중 일부는 전통적인 프로그래밍 방식이 충돌 할 수 있다고 말했습니다. 예를 보려면 내가 생성 및 입력 상자의 이름과 키를 눌러 결과가 충돌 할 수있는 동시에 제출 세 개의 사용자 예를 들어, 톰, 제리 경우 지금이이php의 OOP에 대한 설명

<form name="sample" method="post"> 
    <input type="text" name="name"/> 
<input type="submit" /> 
    </form> 
    <?php 
    if(isset($_POST['name']){ 
    $name=$_POST['name']; 
    echo $name;} 
?> 

처럼 버튼을 제출하고이를 입력 스파이크 있나요? OOP에 대한 글이 충돌이 아니라고 들었습니다. 사실입니까? OOP에 같은 프로그램을 작성해야한다면 어떻게 될까요? 감사합니다,

+0

들었던 내용은 사실 일 수 있지만이 문맥에는 맞지 않습니다. 게시물 변수를 단순히 반향하여 결과가 혼합되지 않습니다. – yasar

+0

이것은 단지 이해가되지 않습니다 - 당신은 갈등을 기대합니까? 그것은 그들이 근본적으로 작동하지 않는 객체 지향 모드가 아닌 PHP를 만든 것처럼 보이지 않습니다 ... – asc99c

+0

해명 해 주셔서 감사합니다. – DAKSH

답변

1

위에서 언급했듯이 동시에 양식을 제출하는 세 사람이 입력 한 값을 반복해서 표시하는 것과 충돌하지 않습니다. PHP 작동 방식은 Tom, Jerry 및 Spike에게 각각 $name을 부여하는 것입니다.

개체 지향 접근 방식의 경우 최종 접근 방식은 프로젝트의 범위에 따라 달라집니다.

class Person 
{ 
    private $_name; 

    public function __construct($name) 
    { 
     $this->_name = $name; 
    } 

    public function WhoAmI() 
    { 
     echo $this->_name; 
    } 
} 

$myPerson = new Person($_POST['name']); 
$myPerson->WhoAmI(); 
2

모든 사용자는 자신의 "세션"이 있으므로 다른 사용자와 충돌하지 않습니다. OOP는 특정 개체를보다 쉽게 ​​처리 할 수 ​​있도록 특정 클래스를 만드는 데 사용됩니다.

예 여러 사용자가있는 경우 OOP 클래스를 사용하는 것이 더 쉽습니다.

class User { 

    $name; 

    function __construct($name) { 
    $this->name = $name; 
    } 

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

} 

난 정말이 URL을보고 추천 할 것입니다 : 당신이 들었어요 무엇 http://php.net/manual/en/language.oop5.php

+0

"인스턴스"는이 컨텍스트에서 "세션"보다 혼동 가능성이 적습니다. ':)' –

+0

@Wesso 감사합니다. – DAKSH

1

가 무의미하고 잘못된 것입니다. 변수는 PHP 스크립트의 호출간에 공유되지 않습니다. 한 번에이 스크립트에 액세스하는 여러 사용자가 일치하지 않는 결과를 보지 않습니다.

이와 관련하여 OOP와 non-OOP PHP 프로그래밍 간에는 전혀 차이가 없습니다.