列出PHP文档Countable :: count的链接,第一个例子是如何工作的?
<?php
class myCounter implements Countable {
private $count = 0;
public function count() {
return ++$this->count;
}
}
$counter = new myCounter;
for($i=0; $i<10; ++$i) {
echo "I have been count()ed " . count($counter) . " times\n";
}
Run Code Online (Sandbox Code Playgroud)
函数是否可以count访问类中的private字段,以及如何?$countmyCounter
PHP count函数不访问私有$count.实际发生的是这个:
count (PHP函数)用参数调用 $counter$counter是否为数组,而不是.它检查是否$counter实现了接口Countable.$counter实现了接口Countable,所以它有一个公共方法count(与PHP函数分开).$counter->count(),然后返回其结果.如你所见,没有提到私人$count.public count方法可以执行常规类方法所能做的任何事情 - 包括访问实例的私有变量.考虑一下:
class myCounter implements Countable {
public function count(){
return 42;
}
}
$counter = new myCounter;
echo "I have " . count($counter) . " items.";
Run Code Online (Sandbox Code Playgroud)
这将导致:
I have 42 items.
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
784 次 |
| 最近记录: |