2013-08-24 1 views
0

누군가 제가 PHP에서 같은 구조를 달성 할 수 있기를 바랍니다. 다음은 .NET 클래스에서 수행하는 작업입니다. 여기도움이 필요하십니까? .NET 클래스 구조체를 PHP로 변환하기

Public Class objSample 

Private _MyPrivateVar As Boolean = False 

Public Property MyPublicProperty As Boolean 
    Get 
     Return _MyPrivateVar 
    End Get 
    Set(ByVal value As Boolean) 
     _MyPrivateVar = value 
    End Set 
End Property 

End Class 

답변

1

그것이 :

class objSample 
{ 
    private $_MyPrivateVar = false; 

    public $_MyPublicProperty; 

    public function getMyPrivateVar() 
    { 
     return $this->_MyPrivateVar; 
    } 

    public function setMyPrivateVar($val) 
    { 
     $this->_MyPrivateVar = $val; 
    } 
} 
+0

여기가 내가 혼란스러워하는 곳입니다. 둘 다 정확하기 때문에 사용법은 동일하지 않습니다. VB.NET에서'Dim NewVal as boolean = objSample.myPublicProperty'를 사용하여 객체를 가져올 수 있습니다. 그리고이 메소드를'objSample.myPublicProperty = 6'처럼 설정할 수도 있습니다. 이제 Royal Bg에서 게시 한 PHP의 마법 기능에 대해 읽었습니다. 거의 그 것처럼 보인다. – joeb

+0

하지만 지금 당신이 나에게 보여 줬던 것에서는 이것을 objPHP :: setMyPrivateVar (6)을 설정하는데 사용해야 할 것입니다. 이것은 모든 속성에 대해 코드에서 킬러 인 set과 get 함수를 정의해야한다는 것을 의미합니다. 그래서 나는 어떤 방향으로 나아갈 지 확신하지 못합니다. – joeb

+0

나는 단지 질문을하게 할 것입니다. 어떻게 당신이 PHP에서 클래스 외부의 개인 속성을 설정할 것이라고? 가장 좋은 방법은 무엇입니까? – joeb

0

내가 VB 지식의 부족을 가지고,이 코드의 목적은 무엇 아무 생각이 없다, 실질적으로 비 사용을 것 같다. 그러나, 나는 그것이 그것이 일해야한다고 생각하는 것에 따라 그것을 만들 으려고 노력했다. 어쩌면 Visual Basic에 익숙한 사람도 도움이 될 것입니다. 그러나, 우리는 코드를 변환하기 위해 여기에 있지 않습니다. 귀하의 목적에 맞게 PHP를 조사해야합니다.

<?php 

class objSample { 
    private $_myPrivateVar = false; 
    public $myPublicProperty; 

    public function __get() { 
     return $this->_myPrivateVar; 
    } 

    public function __set($value) { 
     $this->_myPrivateVar = $value; 
    } 
} 

?> 
+0

'메소드 오버로드'와 관련이 있습니까? '__get()'과'__set()'은'undefined'클래스 속성을위한 것입니다. 그것은 단지 무의미합니다. – Yang

+0

이것은 내가 VB.NET의'Get ... End Get Set (....) '이하는 일이라고 생각합니다. –