我知道引用和指针不同:http://php.net/manual/en/language.references.arent.php
问题是,PHP是否支持指针?
根据以下示例,我猜在处理对象时我们使用的就是指针:
根据以下示例,我猜在处理对象时我们使用的就是指针:
class Entity
{
public $attr;
}
class Filter
{
public function filter(Entity $entity)
{
$entity->attr = trim($entity->attr);
}
}
$entity = new Entity;
$entity->attr = ' foo ';
$filter = new Filter;
$filter->filter($entity);
echo $entity->attr; // > 'foo', no white space
上述示例中使用了指针,还是像使用引用时那样交换内存?
编辑
另一个示例:
以下代码是否会进行内存交换:
class Entity
{
public $attr;
}
$entity = new Entity;
$entity->attr = 1;
$entity->attr = 2;
在C中类似这样的:
int* attr;
*attr = 1;
*attr = 2;
Entity $entity
不会是一个新对象,而是被称为参数的同一个旧对象。 - zzlalani