2014-07-18 3 views
-3

내 클래스의 속성 유형을 정의해야합니다. 다른 클래스로 Bb라고 말하십시오. 나는PHP의 중첩 클래스 - 클래스의 유형을 다른 클래스로 정의 할 수 없습니다.

<?php 

class Attach{ 
    var $attachmentId; 

    var $displayName; 

    var $hyperlinkText; 

    var $content; 
} 

class Bb{ 
    var Attach $attachment; 
} 

below-로 작성 시도하지만 나에게 오류주고있다 -

구문 분석 오류 : 구문 오류, 예기치에/홈 '공개'(T_PUBLIC)/...

올바른 방법은 무엇입니까?

+0

태그는 PHP 5.4라고 말하면서 PHP 4 OOP 코딩 스타일을 사용합니까? 설명서를 더 잘 읽으십시오. –

+0

@MatteoTassinari, 나는 PHP5.4 매뉴얼을 따라 갔다. 그러나 나는 아직도 나의 실제 시나리오에 대한 간단한 접근법을 찾지 못했다. 내 실제 시나리오에는 Bb 클래스의 30-40 개의 속성이 있습니다. Constructor에서 인수를 인수로 전달하지 않기를 바란다. 당신은 아마도 setter 메소드를 생성하고 setter 메소드를 사용하여 보호 된 속성을 설정하기를 원할 것입니다. 그 여분의 코드 라인을 작성하는 것에 대해 게으른 느낌이 들었습니다 (setter 메소드). 게으른 방법을 제안 해 주시겠습니까? 게으른 것은 코드의 줄이 적다는 뜻입니다. – piyush

+0

배열로 속성을 보낼 수는 있지만, 게으름은 좋은 소프트웨어 개발에 도움이되지 못했습니다. –

답변

1

이를 사용해보십시오 : 당신이 당신의 예에서 PHP 4 스타일 OO를 사용하는

<?php 

class Attach{ 

    protected $attachmentId; 

    protected $displayName; 

    protected $hyperlinkText; 

    protected $content; 

} 


class Bb{ 

    protected $attachment; 

    public function __construct(Attach $attachment){ 
     $this->attachment = $attachment; 
    } 
} 

$attachment = new Attach(); 
$bb = new Bb($attachment); 

참고.

자세한 내용은 manual on OO Programming in PHP을 참조하십시오.

+0

내 실제 시나리오에는 Bb 클래스의 30-40 개의 속성이 있습니다. Constructor에서 인수를 인수로 전달하지 않기를 바란다. 당신은 아마도 setter 메소드를 생성하고 setter 메소드를 사용하여 보호 된 속성을 설정하기를 원할 것입니다. 그 여분의 코드 라인을 작성하는 것에 대해 게으른 느낌이 들었습니다 (setter 메소드). 게으른 방법을 제안 해 주시겠습니까? 게으른 것은 코드의 줄이 적다는 뜻입니다. – piyush

+2

특정 키 값을 가진 배열로 속성을 보냅니 까? –

2

문제는 여기에 있습니다 :

class Bb{ 
    var Attach $attachment; 
} 

제거 첨부 : 당신이 정말로 어쨌든 VAR를 사용해서는 안

class Bb{ 
    var $attachment; 
} 

, 개인, 공공, 보호 등

를 사용하여 시작하려고