If I were to explain what a property was in OOP and then go on to explain a constructor, I would ask my audience to envision a spreadsheet. A property is like a column. It's just a digital placeholder. A constructor assigns a value to that column.
"Visibility" is all about how accessible those properties in the context of your app. Public means that it's available throughout your entire online community. "Protected" means that it's only available within the Class that it was instantiated along with any Classes it might be associated with (parent / child). "Private" means that it's only available within the Class it was created in.
"Protected Static." I get the "protected" part and I've attempted to google "static," but I'm still a little fuzzy.
From what I can gather, making a Property "static" eliminates the need for it to be instantiated using the $this (pseudo variable which means "this current object"). Frankly, I've never used that, but I want to understand it. Here's the code I'm attempting to deconstruct:
class StatementImage {
protected $statementid;
protected $pipe_delim;
protected $statement_data;
protected static $debug = false;
/**
* Takes the pipe delimited file and creates a statementimage entity.
*/
public function __construct($pipe_delim) {
$this->pipe_delim = $pipe_delim;
$this->statement_data = StatementImage::pipeToArray($pipe_delim);
$this->statementid = str_replace('T', '', $this->statement_data['statement']['statement_pin']);
}
What is $debug=false? It's not referenced anywhere else on the page and I cannot figure out it's purpose or why it would be assigned a "protected static" dynamic.
Please raise your hand if you know the answer :)...
Our community of experts have been thoroughly vetted for their expertise and industry experience.
The Distinguished Expert awards are presented to the top veteran and rookie experts to earn the most points in the top 50 topics.