2011-03-12 2 views
0

이 해석을 올바르게하기 위해서는 왜 정적 지정이 필요합니까? 아래 코드에서 주석을보십시오.정적 속성 | 'this'및 'self'와의 관계

<?php 

require_once 'class.database.php'; 

class table extends database 
{ 
    static protected $_args=array(); // static added here to remove error 
    function __construct() 
    { 
     parent::__construct(); 
     self::protect(); 
    } 
    function protect() 
    { 
     foreach($_POST as $key => $value) 
     { 
      self::$_args[$key] = mysql_real_escape_string($value); 
     $i++; 
     } 
    } 

. . .

+7

코드를 알려주십시오. – BoltClock

+0

무엇이 오류이며 코드를 게시 할 수 있습니까? – webbiedave

+0

질문을 편집하여 의견을 게시하는 대신 코드를 추가하십시오. 각 행을 네 칸 공백으로 들여 씁니다. 코드 블록을 강조 표시하고 Ctrl + K를 누르면이 작업이 자동으로 수행됩니다. http://stackoverflow.com/editing-help를 참조하십시오. – BoltClock

답변

3

클래스 속성 및 개체 속성이 인 경우 이 있습니다. 인스턴스가 아닌 클래스 자체에 속한 클래스 속성은 static으로 선언되며 self::으로 액세스합니다. 객체 속성은 클래스의 인스턴스에 속하고 static없이 선언되며 $this->으로 액세스됩니다.

self::을 사용하는 경우 개체 메서드에서 클래스 속성에 액세스 할 수 있습니다. 하지만 다른 인스턴스가 액세스하는 것과 동일한 속성에 액세스하게됩니다.

개체/인스턴스가 없기 때문에 정적 메서드에서 개체 속성에 액세스 할 수 없습니다.