我已经下载了一个WordPress主题,在代码中的许多地方我看到操作符-〉。它可以是例如检索一个帖子ID如下:
$postID = $post->ID
我不知道箭头在后台到底做了什么,它是在调用数据库,还是只是从$post变量中获取ID,类似于$postID = $post['ID']?
$postID = $post['ID']
sqyvllje1#
箭头操作符->用于访问对象的属性或方法。访问属性的开销是可以忽略的,但是有时候将属性赋给临时变量会更方便,因为这样可以缩短源代码。示例
->
$oPropValue = $objWithSpeakingName->propertyWithLongName;
然而,将方法调用的返回值保存到一个临时变量中以避免过多的开销通常是一个好的做法。例如,如果方法执行数据库查询(并且没有内置缓存),那么反复调用方法而不是调用一次然后重用值(例如,在循环中)将导致大量的开销。
$propValue = $objWithSpeakingName->doSomeWork(); while( ..condition.. ) { // work with $propValue }
但这也取决于一个方法是如何使用的以及它在做什么,如果它带参数,你可能需要用变化的参数反复调用它,以便完成工作。
while(..condition..) { $arg = .. // might change in the loop $propValue = $objWithSpeakingName->doMoreWork( $arg ); }
ldioqlga2#
在PHP中-〉仅仅意味着它正在访问对象属性,就像.'在其他面向对象语言如java中的工作方式一样。
2条答案
按热度按时间sqyvllje1#
箭头操作符
->
用于访问对象的属性或方法。访问属性的开销是可以忽略的,但是有时候将属性赋给临时变量会更方便,因为这样可以缩短源代码。示例
然而,将方法调用的返回值保存到一个临时变量中以避免过多的开销通常是一个好的做法。例如,如果方法执行数据库查询(并且没有内置缓存),那么反复调用方法而不是调用一次然后重用值(例如,在循环中)将导致大量的开销。
但这也取决于一个方法是如何使用的以及它在做什么,如果它带参数,你可能需要用变化的参数反复调用它,以便完成工作。
ldioqlga2#
在PHP中-〉仅仅意味着它正在访问对象属性,就像.'在其他面向对象语言如java中的工作方式一样。