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的支持
恩,我觉得你说的有道理,这种属性必须在使用的时候要先赋值,如果没有赋值会警告的。

Hot AI Tools

Undresser.AI Undress
AI-powered app for creating realistic nude photos

AI Clothes Remover
Online AI tool for removing clothes from photos.

Undress AI Tool
Undress images for free

Clothoff.io
AI clothes remover

AI Hentai Generator
Generate AI Hentai for free.

Hot Article

Hot Tools

Notepad++7.3.1
Easy-to-use and free code editor

SublimeText3 Chinese version
Chinese version, very easy to use

Zend Studio 13.0.1
Powerful PHP integrated development environment

Dreamweaver CS6
Visual web development tools

SublimeText3 Mac version
God-level code editing software (SublimeText3)

Hot Topics



Alipay PHP...

JWT is an open standard based on JSON, used to securely transmit information between parties, mainly for identity authentication and information exchange. 1. JWT consists of three parts: Header, Payload and Signature. 2. The working principle of JWT includes three steps: generating JWT, verifying JWT and parsing Payload. 3. When using JWT for authentication in PHP, JWT can be generated and verified, and user role and permission information can be included in advanced usage. 4. Common errors include signature verification failure, token expiration, and payload oversized. Debugging skills include using debugging tools and logging. 5. Performance optimization and best practices include using appropriate signature algorithms, setting validity periods reasonably,

Article discusses late static binding (LSB) in PHP, introduced in PHP 5.3, allowing runtime resolution of static method calls for more flexible inheritance.Main issue: LSB vs. traditional polymorphism; LSB's practical applications and potential perfo

Article discusses essential security features in frameworks to protect against vulnerabilities, including input validation, authentication, and regular updates.

The article discusses adding custom functionality to frameworks, focusing on understanding architecture, identifying extension points, and best practices for integration and debugging.

Sending JSON data using PHP's cURL library In PHP development, it is often necessary to interact with external APIs. One of the common ways is to use cURL library to send POST�...

The application of SOLID principle in PHP development includes: 1. Single responsibility principle (SRP): Each class is responsible for only one function. 2. Open and close principle (OCP): Changes are achieved through extension rather than modification. 3. Lisch's Substitution Principle (LSP): Subclasses can replace base classes without affecting program accuracy. 4. Interface isolation principle (ISP): Use fine-grained interfaces to avoid dependencies and unused methods. 5. Dependency inversion principle (DIP): High and low-level modules rely on abstraction and are implemented through dependency injection.

Session hijacking can be achieved through the following steps: 1. Obtain the session ID, 2. Use the session ID, 3. Keep the session active. The methods to prevent session hijacking in PHP include: 1. Use the session_regenerate_id() function to regenerate the session ID, 2. Store session data through the database, 3. Ensure that all session data is transmitted through HTTPS.
