We are continuing to review Joomla 2.5’s Beez2 template code, and we next come accross the following code:
<html xmlns="https://www.w3.org/1999/xhtml" xml:lang="<?php echo $this->language; ?>" lang="<?php echo $this->language; ?>" dir="<?php echo $this->direction; ?>" >
In our review thus far, we have alread seen instances of $this->, for example:
What is $this-> ?
Technically speaking, in PHP $this refers to the current object. PHP will set the contents of $this when you are inside a function of an object.
If we update our template’s code as follows, we can see more information about $this:
<? echo "<pre>"; print_r($this); echo "</pre>"; die(); ?> <html xmlns="https://www.w3.org/1999/xhtml" xml:lang="<?php echo $this->language; ?>" lang="<?php echo $this->language; ?>" dir="<?php echo $this->direction; ?>" >
The output above is quite long, and below we’ve included the first few lines only:
JDocumentHTML Object ( [_links] => Array ( [/joomla25/index.php?format=feed&type=rss] => Array ( [relation] => alternate [relType] => rel [attribs] => Array ( [type] => application/rss+xml [title] => RSS 2.0 )
Based upon the first line, $this appears to be referring to the JDocumentHTML Object, which we touched based on in a previous article.
When is $this-> used in the Beez2 template?
When scanning the index.php file of the Beez2 template, there are several uses of $this: