Reduce repetition when sharing data across an application
I would not get all worked up about having to type a few extra letters when referencing a variable.  I could get worked up over possibly doubling the storage space required for your data depending on it's size. Let's walk though what PHP is doing behind the scenes here to understand:

// PHP references $this-&gt;data to $data by reference
$data = $this-&gt;data;

// since you modify $data here, PHP now copies the entirety of $this-&gt;data
// to $data and breaks reference
// you are now taking up double (plus some) storage for your data 
$data['page_title'] = 'example';


As opposed to directly modifying $this-&gt;data before making assignment to $data like shown below , which would not double memory utilization:

$this-&gt;data['page_title'] = 'example';
$data = $this-&gt;data;


Just remember that as soon as you modify an array assigned in this manner, you remove the ability for PHP to perform it's behind the scenes memory optimization. But really you should not be relying on this anyway, as IMO it is bad coding form to be relying on some hidden, undocumented and possibly subject to change optimization for your code to be working in the best manner.

Alternately, instead of associative array for data, why not use an object (even stdClass), then you are always working with reference to the object (unless you specifically clone it)? For example:

// assuming $this-&gt;data holds object
// $data is just reference to $this-&gt;data here
$data = $this-&gt;data;

// here modifying $data would modify both $data and $this-&gt;data
$data-&gt;page_title = 'example';


This also gives you the possible side benefit of being able to type hint against an object in method signatures as you are passing this data around or injecting it as dependency.