Variable Variables and Variable Functions in PHP

Variable Variables and Function Variables in PHP

PHP variable variables are almost never used because they greatly obfuscate any application
that you’re trying to write and can very easily inject a number of bugs into a script.
That being said, this interesting little feature just may be on the Zend PHP Certification Exam.

Variable variables use a variable as the name of another variable.
You may think that these are kind of like a pointer in other languages and I guess they are
except you can’t do any of the fun pointer arithmetic. Here’s a simple example of using the
value of another variable for a variable’s name.

  1.  
  2. $name = ’foo’;
  3. $$name = ’bar’;
  4. echo $foo;
  5. // Displays ’bar’
  6.  

This could also be used to have a number as a variable name (which normally isn’t allowed):

  1.  
  2. $name = ’123’;
  3. $$name = ’456’;
  4. echo ${123};
  5.  

While on the topic of PHP pointer like stuff, it is also possible to use a variable as a function pointer
like in the following example.

  1.  
  2. function myFunc() {
  3.         echo ’myFunc!’;
  4. }
  5. $f = ’myFunc’;
  6. $f(); // will call myFunc();
  7.  

I don’t think I’ll be using any of these features in my applications any time soon but hopefully I
won’t be clueless when taking the Zend PHP Certification Exam to become a Certified Zend Engineer.

Print, Echo, and Deprecated PHP Tags

One of the first unavoidable first steps of writing php is outputting to the screen using echo or print. These simple functions are invaluable to every script that I’ve ever written and I’m sure they will be all over the Zend PHP certification exam.

Turns out that in most cases, using the echo function instead of the print function is a bit faster. Usually this won’t really make any difference in your day to day code but it’s interesting nonetheless. It’s faster because it doesn’t return a value.

The print function is good when you need to use it as a function, for example:

  1. while(print("this will return stuff"))
  2. {
  3.     // Important PHP code here.
  4. }

Another basic element is the PHP script tags. I’ve really only ever used the normal tags but I’ve always known about the others. Turns out that they are all slowly being phased out.
Short tags, script tags and ASP tags are all considered deprecated and their use is strongly discouraged. Here’s an example of each type of tag that you shouldn’t be using:

  1. //Short Tags:
  2. <?
  3. code
  4. ?>
  5. <?= $variable ?>
  6.  
  7. //Script Tags:
  8. <script language=“php”>
  9. code
  10. </script>
  11.  
  12. //ASP Tags:
  13. <%
  14. code
  15. %>

Lastly I came across this odd little statement:

  1. echo (int) ((0.1 + 0.7)*10);

This will echo 7. Whaaa?

This happens because the result of this simple arithmetic expression is stored internally as 7.999999 instead of 8; when the value is converted to int, PHP simply truncates away the fractional part, resulting in a rather significant error (12.5%, to be exact).

I’ve read that the Zend exam likes to use odd little questions like this to try and trip up developers. Hopefully knowing how this works will help me on my way to becoming a Zend Certified Engineer.

 

 

Zend PHP Certification Exam Decision

I’ve decided to take the Zend PHP Certification exam. I haven’t decided when yet. I’ve been programming in PHP for many years and I know that I’m great at it, but I figured a certification emphasizing my expertise couldn’t hurt. As far as I have read, the exam is fairly thorough with it’s material and it will definitely try to throw a number of Gotchas at you. If you haven’t been programming in PHP for at least a few years then you will really want to study up hard.

The whole point of this blog is to share my study notes as I progress through all the material. I do not plan on posting basic information such as how to write a for loop or anything as trivial as that. I will be posting anything that I feel I need to study up on. I’ve already been reading up for a few days and I’ve come across numerous topics that I’ve never even seen before in my day to day operations so I don’t think I’ll have a shortage of material to write about.

From what I’ve googled about zend php certification exam, it seems that a lot of people fail. I’m not sure if that is just because the people that pass don’t really post their success or if the test is really that hard. I’m hoping for the former but I’ll have to wait to find out.

This PHP exam covers PHP 5.3 and can be taken in one of 4700+ Pearson VUE testing centers around the world. Upon completion, I will apparently receive a copy of Zend Studio and a Zend Server Developer license along with being listed among the top PHP developers in the Niagara region which is alright I guess… More importantly, the successful completion of this Zend PHP exam will get me the designation of a Zend Certified Engineer. I’ll probably also get a nice shiny certificate that I can plan to frame and hang on the wall, but realistically put in a drawer and forget about.

Lastly, the exam is only $200 so it’s really not that big of a drain on the finances and if I do end up failing, I’m not out a few thousand dollars like some exams.