<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>WordPress Website Development - Tulsa, OK - Two Miles Solutions, LLC &#187; Programming</title>
	<atom:link href="http://www.twomilessolutions.com/tag/programming/feed/" rel="self" type="application/rss+xml" />
	<link>http://www.twomilessolutions.com</link>
	<description>Better People, Better Code, Going the Extra Mile</description>
	<lastBuildDate>Sat, 28 Jan 2012 04:53:35 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.3.1</generator>
		<item>
		<title>.NET Style Properties (Getters/Setters) in PHP</title>
		<link>http://www.twomilessolutions.com/2010/02/22/net-style-properties-getterssetters-in-php/</link>
		<comments>http://www.twomilessolutions.com/2010/02/22/net-style-properties-getterssetters-in-php/#comments</comments>
		<pubDate>Mon, 22 Feb 2010 14:00:00 +0000</pubDate>
		<dc:creator>Jeff Miles</dc:creator>
				<category><![CDATA[Programming]]></category>
		<category><![CDATA[Random Thoughts]]></category>
		<category><![CDATA[C# .NET]]></category>
		<category><![CDATA[PHP]]></category>
		<category><![CDATA[Visual Basic .NET]]></category>

		<guid isPermaLink="false">http://www.twomilessolutions.com/2010/02/22/net-style-properties-getterssetters-in-php/</guid>
		<description><![CDATA[On any given day, I can be programming in one of many languages (C# .NET, PHP, JavaScript, CSS, &#38; HTML [I know I may be pushing it calling CSS &#38; HTML languages], and soon Visual Basic .NET because of a collaborative project).&#160; Don’t get me wrong, I love that part of my job.&#160; It keeps [...]
Related posts:<ol>
<li><a href='http://www.twomilessolutions.com/2009/11/05/php-coding-chmod-my-new-best-friend/' rel='bookmark' title='PHP Coding: chmod() my new best friend'>PHP Coding: chmod() my new best friend</a></li>
</ol>]]></description>
			<content:encoded><![CDATA[<p><img style="border-bottom: 0px; border-left: 0px; margin: 0px 0px 5px 10px; display: inline; border-top: 0px; border-right: 0px" title="DSC01202" border="0" alt="DSC01202" align="right" src="http://www.twomilessolutions.com/wp-content/uploads/2010/02/DSC01202.jpg" width="244" height="184" /> On any given day, I can be programming in one of many languages (C# .NET, PHP, JavaScript, CSS, &amp; HTML [I know I may be pushing it calling CSS &amp; HTML languages], and soon Visual Basic .NET because of a collaborative project).&#160; Don’t get me wrong, I love that part of my job.&#160; It keeps me sharp.&#160; Sure there is the occasional mishap where I forget that the . is the member accessor in the .NET languages, but it is the concatenation operator in PHP and I will throw the occasional $ into my C# code…</p>
<p>Another thing to know is that I am an object oriented programmer to the core…I am currently cleaning up after another developer who was not an object oriented guy…grr…there is data access code everywhere and he didn’t know the definition of object…finally I just took the functionality down because it was so bug ridden that whenever I would fix one bug, it would expose another.&#160; One thing that has constantly bugged me since I started coding in PHP that I didn’t like its method of using __get and __set for getters and setters (mainly because I still use a modified version of Hungarian notation, but that is a discussion for another blog post, so I didn’t like what the getters and setters would look like).</p>
<p>Then, tonight, as I was coding, I had an epiphany, I could use PHP’s optional operator syntax for a function to get something close to what I would want.&#160; So, where I would have coded this before:</p>
<div class="csharpcode">
<pre><span class="lnum">   1:  </span>&lt;?php</pre>
<pre><span class="lnum">   2:  </span>&#160;</pre>
<pre><span class="lnum">   3:  </span><span class="kwrd">class</span> Test {</pre>
<pre><span class="lnum">   4:  </span>&#160;</pre>
<pre><span class="lnum">   5:  </span><span class="kwrd">private</span> $m_intId;</pre>
<pre><span class="lnum">   6:  </span>&#160;</pre>
<pre><span class="lnum">   7:  </span><span class="kwrd">public</span> function setId($<span class="kwrd">value</span>) {</pre>
<pre><span class="lnum">   8:  </span>&#160;</pre>
<pre><span class="lnum">   9:  </span>$<span class="kwrd">this</span>-&gt;m_intId = $<span class="kwrd">value</span>;</pre>
<pre><span class="lnum">  10:  </span>&#160;</pre>
<pre><span class="lnum">  11:  </span>}</pre>
<pre><span class="lnum">  12:  </span>&#160;</pre>
<pre><span class="lnum">  13:  </span><span class="kwrd">public</span> function getId() {</pre>
<pre><span class="lnum">  14:  </span>&#160;</pre>
<pre><span class="lnum">  15:  </span><span class="kwrd">return</span> $<span class="kwrd">this</span>-&gt;m_intId();</pre>
<pre><span class="lnum">  16:  </span>&#160;</pre>
<pre><span class="lnum">  17:  </span>}</pre>
<pre><span class="lnum">  18:  </span>&#160;</pre>
<pre><span class="lnum">  19:  </span>}</pre>
<pre><span class="lnum">  20:  </span>&#160;</pre>
<pre><span class="lnum">  21:  </span>?&gt;</pre>
</div>
<style type="text/css">
.csharpcode, .csharpcode pre
{
	font-size: small;
	color: black;
	font-family: consolas, "Courier New", courier, monospace;
	background-color: #ffffff;
	/*white-space: pre;*/
}
.csharpcode pre { margin: 0em; }
.csharpcode .rem { color: #008000; }
.csharpcode .kwrd { color: #0000ff; }
.csharpcode .str { color: #006080; }
.csharpcode .op { color: #0000c0; }
.csharpcode .preproc { color: #cc6633; }
.csharpcode .asp { background-color: #ffff00; }
.csharpcode .html { color: #800000; }
.csharpcode .attr { color: #ff0000; }
.csharpcode .alt 
{
	background-color: #f4f4f4;
	width: 100%;
	margin: 0em;
}
.csharpcode .lnum { color: #606060; }</style>
<p>where I would do the following to access it $objTest-&gt;setId(1); or $intId = $objTest-&gt;getId(); (I would have to explicitly call the getter or setter)</p>
<p>Tonight I realized, I could code it this way:</p>
<div class="csharpcode">
<pre><span class="lnum">   1:  </span>&lt;?php</pre>
<pre><span class="lnum">   2:  </span>&#160;</pre>
<pre><span class="lnum">   3:  </span><span class="kwrd">class</span> Test {</pre>
<pre><span class="lnum">   4:  </span>&#160;</pre>
<pre><span class="lnum">   5:  </span><span class="kwrd">private</span> $m_intId;</pre>
<pre><span class="lnum">   6:  </span>&#160;</pre>
<pre><span class="lnum">   7:  </span><span class="kwrd">public</span> function Id($<span class="kwrd">value</span> = 0) {</pre>
<pre><span class="lnum">   8:  </span>&#160;</pre>
<pre><span class="lnum">   9:  </span><span class="kwrd">if</span>($<span class="kwrd">value</span> != 0) {</pre>
<pre><span class="lnum">  10:  </span>&#160;</pre>
<pre><span class="lnum">  11:  </span>$<span class="kwrd">this</span>-&gt;m_intId = $<span class="kwrd">value</span>;</pre>
<pre><span class="lnum">  12:  </span>&#160;</pre>
<pre><span class="lnum">  13:  </span>} <span class="kwrd">else</span> {</pre>
<pre><span class="lnum">  14:  </span>&#160;</pre>
<pre><span class="lnum">  15:  </span><span class="kwrd">return</span> $<span class="kwrd">this</span>-&gt;m_intId;</pre>
<pre><span class="lnum">  16:  </span>&#160;</pre>
<pre><span class="lnum">  17:  </span>}</pre>
<pre><span class="lnum">  18:  </span>&#160;</pre>
<pre><span class="lnum">  19:  </span>}</pre>
<pre><span class="lnum">  20:  </span>&#160;</pre>
<pre><span class="lnum">  21:  </span>?&gt;</pre>
</div>
<style type="text/css">
.csharpcode, .csharpcode pre
{
	font-size: small;
	color: black;
	font-family: consolas, "Courier New", courier, monospace;
	background-color: #ffffff;
	/*white-space: pre;*/
}
.csharpcode pre { margin: 0em; }
.csharpcode .rem { color: #008000; }
.csharpcode .kwrd { color: #0000ff; }
.csharpcode .str { color: #006080; }
.csharpcode .op { color: #0000c0; }
.csharpcode .preproc { color: #cc6633; }
.csharpcode .asp { background-color: #ffff00; }
.csharpcode .html { color: #800000; }
.csharpcode .attr { color: #ff0000; }
.csharpcode .alt 
{
	background-color: #f4f4f4;
	width: 100%;
	margin: 0em;
}
.csharpcode .lnum { color: #606060; }</style>
<p>Now, I can access the id by doing the following: $objTest-&gt;Id(5); or $intId = $objTest-&gt;Id();</p>
<p>What are your thoughts developers?</p>
<p><a class="a2a_dd a2a_target addtoany_share_save" href="http://www.addtoany.com/share_save#url=http%3A%2F%2Fwww.twomilessolutions.com%2F2010%2F02%2F22%2Fnet-style-properties-getterssetters-in-php%2F&amp;title=.NET%20Style%20Properties%20%28Getters%2FSetters%29%20in%20PHP" id="wpa2a_2"><img src="http://www.twomilessolutions.com/wp-content/plugins/add-to-any/share_save_171_16.png" width="171" height="16" alt="Share"/></a></p><p>Related posts:<ol>
<li><a href='http://www.twomilessolutions.com/2009/11/05/php-coding-chmod-my-new-best-friend/' rel='bookmark' title='PHP Coding: chmod() my new best friend'>PHP Coding: chmod() my new best friend</a></li>
</ol></p>]]></content:encoded>
			<wfw:commentRss>http://www.twomilessolutions.com/2010/02/22/net-style-properties-getterssetters-in-php/feed/</wfw:commentRss>
		<slash:comments>4</slash:comments>
		</item>
	</channel>
</rss>

