2016-07-01 10 views
1

PHP에서 멍청한 데요, 제발 도와주세요, 제 수업에서 반향을 일으키지 않는 이유는 무엇입니까? 어쩌면 클래스에서 값을 가진 PHP 작업이 특정 방식으로 진행될 것입니다 (Java/C#에서 왔습니다).PHP 클래스의 값을 반향합니다.

class GuestBook 
{ 
    private static $numInstances = 0; 
    private $var1 = 10; 

    function __construct() 
    { 
     static::$numInstances++; 
    } 

    public static function getNumInstances() 
    { 
     return static::$numInstances; 
    } 

    public function getVar1() 
    { 
     return $this->var1; 
    } 
} 

윌 출력 :이 도움이

210

희망? 당신의 클래스>

+1

공지 사항 한 가지, 대한 클래스 정의 코드 : *** GuestBook :: ** getNumInstances() *. 이제 클래스 자체에서 정적 속성 및 메서드에 대해 'self'를 사용하여 클래스를 참조 할 수 있습니다. – Rizier123

+0

에코 구문이 잘못되었습니다. 이 http://www.w3schools.com/php/func_string_echo.asp를 확인하십시오. –

+0

java에서 당신은 할 수 있지만 PHP에서는'$ numInstances'와 같은 클래스 변수를 액세스 할 수 없습니다 –

답변

0

변경

<?php 

class GuestBook 
{ 
    private static $numInstances = 0; 
    private $var1 = 10; 

    function __construct() 
    { 
     $numInstances++; 
    } 

    public static function getNumInstances() 
    { 
     return $numInstances; 
    } 

    public function getVar1() 
    { 
     return $var1; 
    } 
} 

$instance1 = new GuestBook(); 
$instance2 = new GuestBook(); 

echo(GuestBook::getNumInstances()); 
echo($instance1->getVar1()); 

.

+0

죄송합니다. 제 코드에서 실수로 $ var1은 정적이 아닌 일반적인 값이어야합니다. 그래서 코드가 정적 값으로 나를 돕는다. 클래스에서 비 정적 값을 반향시키는 법? –

+0

고마워요.) –

+0

@AnthonyGorshenin 건배 남자) –

0
<?php 

class GuestBook 
{ 
    private static $numInstances = 0; 
    private static $var1 = 10; 

    function __construct() 
    { 
     static::$numInstances++; 
    } 

    public static function getNumInstances() 
    { 
     return GuestBook::$numInstances; 
    } 

    public function getVar1() 
    { 
     return GuestBook::var1; 
    } 
} 

$instance1 = new GuestBook(); 
$instance2 = new GuestBook(); 

echo(GuestBook::getNumInstances()); 

?> 

당신은

가 사용해야하는 대신 개체 이름의 클래스 이름을 사용하여 정적 변수에 접근 할 필요가 -> 당신이하지 않았다 비 정적 메서드

관련 문제