>  기사  >  백엔드 개발  >  yii2의 getter 및 setter와 관련하여 주의해야 할 사항은 무엇인가요?

yii2의 getter 및 setter와 관련하여 주의해야 할 사항은 무엇인가요?

小云云
小云云원래의
2018-03-16 13:16:451299검색

이 글은 주로 yii2의 getter 및 setter와 관련하여 주의해야 할 사항을 공유합니다. yii2의 getter 및 setter 사용 방법을 더 잘 이해하는 데 도움이 되기를 바랍니다.

먼저 yiichina의 권위 있는 가이드에 대한 설명을 살펴보겠습니다.

  • 이러한 속성의 이름은 대소문자를 구분하지 않습니다. 예를 들어 $object->label과 $object->Label은 동일한 속성입니다. PHP 메소드 이름은 대소문자를 구분하지 않기 때문입니다.

  • 이 유형의 속성 이름이 클래스 멤버 변수와 동일한 경우 후자가 우선합니다. 예를 들어, 위의 Foo 클래스에 레이블 멤버 변수가 있다고 가정해 보겠습니다. 그런 다음 $object->label = 'abc'에 값을 할당합니다. 이 값은 setter setLabel() 메서드 대신 멤버 변수에 할당됩니다.

  • 이 유형의 속성은 가시성(액세스 제한)을 지원하지 않습니다. 속성의 getter 및 setter 메서드가 공개, 보호 또는 비공개인지 여부는 속성의 가시성에 영향을 주지 않습니다.

  • 해당 속성의 getter 및 setter 메서드는 비정적으로만 정의할 수 있습니다. 정적 메서드(정적)로 정의하면 동일한 방식으로 처리되지 않습니다.

  • property_exists()에 대한 일반적인 호출로는 마법 속성을 확인할 수 없습니다. canGetProperty() 또는 canSetProperty()를 호출해야 합니다.

1. 먼저 이 기사를 살펴보겠습니다.

이 속성 유형의 이름이 클래스 멤버 변수와 동일한 경우 후자가 우선합니다. 예를 들어, 위의 Foo 클래스에 label 멤버 변수가 있고 $object->label = 'abc'에 값을 할당하면 setter setLabel() 메서드 대신 멤버 변수에 할당됩니다.

사실 이 문장은 우리의 setter와 getter가 숨겨진 속성과 보호되는 속성에만 작동한다는 것을 의미합니다. public 수정자에 의해 수정된 변수인 경우 setter나 getter를 거치지 않고 직접 할당되고 획득됩니다. 예:

dfa772b8e31c4c8678194fbb30e36621
 * Site: www.weiyongqiang.com
 * Date: 2017/3/6
 * Time: 23:29
 */
namespace frontend\components;
use yii\base\Component;
class UserInfo extends Component
{
    public $userid = 11;
    public $userName;
    public function __construct(array $config)
    {
        parent::__construct($config);
    }
    public function setUserId($userId)
    {
        echo 123;
        $this->userId = $userId;
    }
    public function getuserid()
    {
        //return $this->userId;
        return 123456;
    }
}
然后实例化组件后的获取userid属性
$userInfo = new UserInfo([]);echo "<pre/>";
//$userInfo->userId = 10;echo $userInfo->userid;exit;

출력 결과는 다음과 같습니다. 11

즉, userid가 public의 속성인 경우입니다. modifier는 기본적으로 제가 정의한 getuserid를 입력하지 않기 때문에 속성이 공개 유형이고 속성을 균일하게 처리하려는 경우 getter를 사용하여 이를 달성할 수 없습니다.

이 기사는 Wei Yongqiang의 원본 ​​작품이므로 허가 없이 복제할 수 없습니다: MarsWill » yii2의 getter 및 setter에 대해 참고할 사항입니다.

관련 권장 사항:

Javascript의 getter 및 setter에 대한 기본 소개

Vue.js로 인해 발생한 getter 및 setter에 대한 생각에 대해 이야기

ECMAScript5의 개체 접근자 속성: getters 및 setters 소개_ javascript 기술

위 내용은 yii2의 getter 및 setter와 관련하여 주의해야 할 사항은 무엇인가요?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.