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 Clothes Remover
用于从照片中去除衣服的在线人工智能工具。

Undress AI Tool
免费脱衣服图片

Clothoff.io
AI脱衣机

AI Hentai Generator
免费生成ai无尽的。

热门文章

热工具

记事本++7.3.1
好用且免费的代码编辑器

SublimeText3汉化版
中文版,非常好用

禅工作室 13.0.1
功能强大的PHP集成开发环境

Dreamweaver CS6
视觉化网页开发工具

SublimeText3 Mac版
神级代码编辑软件(SublimeText3)

热门话题

Laravel使用其直观的闪存方法简化了处理临时会话数据。这非常适合在您的应用程序中显示简短的消息,警报或通知。 默认情况下,数据仅针对后续请求: $请求 -

PHP客户端URL(curl)扩展是开发人员的强大工具,可以与远程服务器和REST API无缝交互。通过利用Libcurl(备受尊敬的多协议文件传输库),PHP curl促进了有效的执行

Laravel 提供简洁的 HTTP 响应模拟语法,简化了 HTTP 交互测试。这种方法显着减少了代码冗余,同时使您的测试模拟更直观。 基本实现提供了多种响应类型快捷方式: use Illuminate\Support\Facades\Http; Http::fake([ 'google.com' => 'Hello World', 'github.com' => ['foo' => 'bar'], 'forge.laravel.com' =>

您是否想为客户最紧迫的问题提供实时的即时解决方案? 实时聊天使您可以与客户进行实时对话,并立即解决他们的问题。它允许您为您的自定义提供更快的服务

文章讨论了PHP 5.3中引入的PHP中的晚期静态结合(LSB),从而允许静态方法的运行时分辨率调用以获得更灵活的继承。 LSB的实用应用和潜在的触摸
