php中@property的作用?
我发现用@property 申明属性后,类中也可以使用,如下面的代码!请问adminName1和adminName2有什么区别?是不是一般申明属性都用@property?
/**
* @property string adminName1
*/
class test {
private $adminName2;
public function getName($pram1,$pram2) {
$this->adminName1 = $pram1;
$this->adminName2 = $pram2;
}
}
?>
回复讨论(解决方案)
你没看到他是在注释里面的吗?
@property string adminName1
是说属性 adminName1 是一个字符串
这只是为了帮助理解程序的说明文字
我看到他在注释里,知道在其他地方调用的时候可以用于提示信息!我不明白为什么在类里面可以使用它?
你根据它的规则走就是啦。这是出自哪里的代码?
我在yii框架里面看到的。但是我自己写了一个测试,也可以,如下:
/**
* @property string adminName1
*/
class test {
private $adminName2;
public function setName($pram1,$pram2) {
$this->adminName1 = $pram1;
$this->adminName2 = $pram2;
}
public function getName() {
return $result = $this->adminName1." ".$this->adminName2;
}
}
$test = new test();
$test->setName("admin1", "admin2");
echo $test->getName();
?>
//输出结果:admin1 admin2
所以我想php是不是就有这个规则?
已经说了 是为了帮助理解程序的说明文字
像你这样一改
/**
* @property string adminName1
*/
就没有说明的意义了,相反还会产生误解
明明他说有一个 adminName1 属性,我怎么没看到呀?只看到 adminName2,是不是还要定义一个 adminName1 呀
你在说什么?
已经说了 是为了帮助理解程序的说明文字
像你这样一改
/**
* @property string adminName1
*/
就没有说明的意义了,相反还会产生误解
明明他说有一个 adminName1 属性,我怎么没看到呀?只看到 adminName2,是不是还要定义一个 adminName1 呀
这位师兄,非常感谢你的回答,但是我觉得你没有明白的我意思!
楼主,我也在找这个问题的答案,回复的几位兄台确实没明白楼主的意思。
没google到答案,我个人的理解,这是给IDE看的,
@property关键字作为转义,IDE遇到这类注释,自动为其加入属性列表(即使它不存在,你可以按这个格式添加一个不存在的属性试试)。
目的是为一些魔术属性变得显式,让调用的开发者更清楚,当然,需要IDE的支持
首先这个标识属性以后,属性还是未被定义,对这些属性的调用最后都是调用__set和__get方法。常见的使用方法是:
public function __get($name){ $getter='get'.$name; if(method_exists($this,$getter))return $this->$getter();}
最后对这些未定义属性的方法都转换为get/set函数的访问。
楼主,我也在找这个问题的答案,回复的几位兄台确实没明白楼主的意思。
没google到答案,我个人的理解,这是给IDE看的,
@property关键字作为转义,IDE遇到这类注释,自动为其加入属性列表(即使它不存在,你可以按这个格式添加一个不存在的属性试试)。
目的是为一些魔术属性变得显式,让调用的开发者更清楚,当然,需要IDE的支持
恩,我觉得你说的有道理,这种属性必须在使用的时候要先赋值,如果没有赋值会警告的。

핫 AI 도구

Undresser.AI Undress
사실적인 누드 사진을 만들기 위한 AI 기반 앱

AI Clothes Remover
사진에서 옷을 제거하는 온라인 AI 도구입니다.

Undress AI Tool
무료로 이미지를 벗다

Clothoff.io
AI 옷 제거제

AI Hentai Generator
AI Hentai를 무료로 생성하십시오.

인기 기사

뜨거운 도구

메모장++7.3.1
사용하기 쉬운 무료 코드 편집기

SublimeText3 중국어 버전
중국어 버전, 사용하기 매우 쉽습니다.

스튜디오 13.0.1 보내기
강력한 PHP 통합 개발 환경

드림위버 CS6
시각적 웹 개발 도구

SublimeText3 Mac 버전
신 수준의 코드 편집 소프트웨어(SublimeText3)

뜨거운 주제











Alipay PHP ...

JWT는 주로 신분증 인증 및 정보 교환을 위해 당사자간에 정보를 안전하게 전송하는 데 사용되는 JSON을 기반으로 한 개방형 표준입니다. 1. JWT는 헤더, 페이로드 및 서명의 세 부분으로 구성됩니다. 2. JWT의 작업 원칙에는 세 가지 단계가 포함됩니다. JWT 생성, JWT 확인 및 Parsing Payload. 3. PHP에서 인증에 JWT를 사용하면 JWT를 생성하고 확인할 수 있으며 사용자 역할 및 권한 정보가 고급 사용에 포함될 수 있습니다. 4. 일반적인 오류에는 서명 검증 실패, 토큰 만료 및 대형 페이로드가 포함됩니다. 디버깅 기술에는 디버깅 도구 및 로깅 사용이 포함됩니다. 5. 성능 최적화 및 모범 사례에는 적절한 시그니처 알고리즘 사용, 타당성 기간 설정 합리적,

기사는 PHP 5.3에 도입 된 PHP의 LSB (Late STATIC BING)에 대해 논의하여 정적 방법의 런타임 해상도가보다 유연한 상속을 요구할 수있게한다. LSB의 실제 응용 프로그램 및 잠재적 성능

기사는 입력 유효성 검사, 인증 및 정기 업데이트를 포함한 취약점을 방지하기 위해 프레임 워크의 필수 보안 기능을 논의합니다.

PHP 개발에서 PHP의 CURL 라이브러리를 사용하여 JSON 데이터를 보내면 종종 외부 API와 상호 작용해야합니다. 일반적인 방법 중 하나는 컬 라이브러리를 사용하여 게시물을 보내는 것입니다 ...

이 기사에서는 프레임 워크에 사용자 정의 기능 추가, 아키텍처 이해, 확장 지점 식별 및 통합 및 디버깅을위한 모범 사례에 중점을 둡니다.

PHP 개발에서 견고한 원칙의 적용에는 다음이 포함됩니다. 1. 단일 책임 원칙 (SRP) : 각 클래스는 하나의 기능 만 담당합니다. 2. Open and Close Principle (OCP) : 변경은 수정보다는 확장을 통해 달성됩니다. 3. Lisch의 대체 원칙 (LSP) : 서브 클래스는 프로그램 정확도에 영향을 미치지 않고 기본 클래스를 대체 할 수 있습니다. 4. 인터페이스 격리 원리 (ISP) : 의존성 및 사용되지 않은 방법을 피하기 위해 세밀한 인터페이스를 사용하십시오. 5. 의존성 반전 원리 (DIP) : 높고 낮은 수준의 모듈은 추상화에 의존하며 종속성 주입을 통해 구현됩니다.

세션 납치는 다음 단계를 통해 달성 할 수 있습니다. 1. 세션 ID를 얻으십시오. 2. 세션 ID 사용, 3. 세션을 활성 상태로 유지하십시오. PHP에서 세션 납치를 방지하는 방법에는 다음이 포함됩니다. 1. 세션 _regenerate_id () 함수를 사용하여 세션 ID를 재생산합니다. 2. 데이터베이스를 통해 세션 데이터를 저장하십시오.
