The past few weeks have been a quite complicated experience for me. Our company had a major layoff, and I was one of them, but I experienced the joy of it. I've never been fired, so it's hard not to overthink it. I started browsing job boards, and a position for a full-time PHP programmer appealed to me, so I sent in my resume and got an interview. Between interviews, I chatted with its main programmers on the consultation phone, and finally they gave me a set of test questions, one of which was very intriguing.
Find the error in the following code:
$x = new Array();
$x[sales] = 60;
$x[profit] = 20:
foreach($x as $key = $value) {
echo $key " " $value "
";
}
}
How many can you find?
If you find that there is a missing comma in the function parameter list, "new Array()" is incorrect, a colon is used at the end of the line instead of a semicolon, "=>" is not used in foreach and " " is used to connect characters String, congratulations, you found all the errors and you have mastered the basics of PHP programming.
Now let me tell you how I answered this question. I certainly identified the above issues, but I went one step further. For example, have you ever noticed that a string in an array index is not enclosed in quotes? Although this is not a serious error, it is a coding error. Also, did you notice that in the echo line it uses double quotes instead of single quotes? It uses the abbreviated form of the PHP start flag? And it doesn't use "
"" instead of "
"?
After finding the actual error, I added a comment after the problem found above. This was enough to change the answer sheet from "correct" to "thought-provoking", which also added a lot of points to my application, so they decided to hire me. (But in the end I refused because I like the tight pace of life and dedicate my PHP skills to my customers, rather than a company involved in the telecommunications market. I need a stage to show off my skills.)
Then let’s take a look at the 10 PHP programming habits I wrote:
1. String enclosed in single quotes
When double quotes are used to enclose a string, the PHP interpreter will perform variable substitution, escaping and other operations on it, such as " ". If you just want to output a basic string, use single quotes, which will save some resources. Of course, if you need to perform variable substitution, you must use double quotes, but in other cases, use single quotes.
2. Output of string
Which of the following statements do you think runs the fastest?
print "Hi my name is $a. I am $b";
echo "Hi my name is $a. I am $b";
echo "Hi my name is ".$a.". I am ".$b;
echo "Hi my name is ",$a,". I am ",$b;
echo 'Hi my name is ',$a,'. I am ',$b;
Maybe this seems strange, but the last one actually runs the fastest. Print is slower than echo, it is slower when replacing variables in a string, and concatenating strings is slower than concatenating with commas. The last sentence is the embodiment of the first habit. So, not doing variable substitutions in strings will not only make your program run faster, it will also make your code more understandable in any editor with syntax highlighting (variables will be highlighted). Few people know that echo parameters can be concatenated with commas, and the speed is faster than string concatenation. Finally, if you use the first habit, this statement will be very good.
3. Use single quotes
in array indexAs you can see in the test question above, I pointed out that $x[sales] is technically wrong and the index should be bracketed, i.e. $x['sales']. This is because PHP recognizes an unquoted index as a "naked" string and interprets it as a constant. When the definition of the constant cannot be found, it is interpreted as a string, so this statement is runnable. Enclosing the index can save this part of the work, and there will be no errors if you happen to use this string to define a constant in the future. I've even heard that doing this makes it about seven times faster, although I haven't tested it myself. For more discussion on this topic, see the section "What Arrays Can and Can't Do" in the "Arrays" chapter of the PHP manual.
4. Do not use the abbreviation of the start mark
Are you using such a symbol? "
5. Try not to use regular expressions
When performing regular string operations, try not to use regular expressions (preg and ereg series functions) as much as possible. The str_replace function is much faster than preg_replace, and even the strtr function is faster than str_replace. Save yourself the trouble and your boss will thank you.
6. Do not use functions in loop declarations
This problem does not only appear in PHP, you can often see it in code in other languages:
Difference: for($i=0;$i
Good: $count=count($array);for($i=0;$i<$count;$i ){...}
This should be easy to explain, but many people just want to write less lines of code and waste system resources. If the count function is used in the loop declaration, it will be called once for each loop. If you have a lot of loops, it will waste a lot of time.
7. Never use register_globals and magic quotes
These are two very old functions. They may have been a good method at the time (ten years ago), but it seems not to be the case now. Older versions of PHP will turn on these two functions by default when installed, which can cause security holes, programming errors and other problems. For example, variables will only be created when the user enters data. Both features are now deprecated and should be avoided by every programmer. If your past programs have used these two functions, remove them as soon as possible.
8. Be sure to initialize the variables ("initialization" here refers to "declaration" - translator's note)
When an uninitialized variable is required, the PHP interpreter will automatically create a variable, but it is not a good idea to rely on this feature for programming. This can make the program crude or confusing because you need to figure out where the variable was created. Additionally, incrementing an uninitialized variable is slower than an initialized variable. So it would be a good idea to initialize variables.
9. Comment the code
This question has been raised many times, but no amount of times is enough. I know some places won't hire programmers who don't comment their code. After a previous job interview, I went through the code I wrote with the vice president and interviewer. When they were impressed by the code comments I made, they also learned about this habit of mine. One day later, I got the job.
I know some people who call themselves PHP masters claim that their code is well written and does not require any comments. In my opinion, these people are trash. It is worthwhile to learn the specifications and techniques for writing comments and become familiar with comment assistance software such as phpDocumentor or Doxygen.
10. Follow a programming specification
On this note, what you need to ask your potential boss during the interview is what programming conventions they are using. PEAR?Zend?Internal Standards? Mention the programming standard you are using, whether it is one of your own creation or one that is currently popular. For a loose language like PHP, if there is no good programming specification, then the code will look like a bunch of garbage. Stinky, disgusting garbage. Some basic specifications include space specifications, bracket matching, naming style, etc. This is a must for anyone who pursues high-quality code.
Someone said: "I hate your 4-space indentation." I'm going to say, what? Use 4 spaces for indentation? This takes up 3 characters more space than using tabs. More importantly, you can customize the tab indentation value as long as you use an editor more advanced than Notepad. So every programmer can look at the code in the way they're most comfortable with. Set to 4 when possible, or 0 if you're a masochist. I don’t care anyway, but you just can’t use spaces for indentation!
In general, I hope the above programming habits can be helpful to you. If you want to make a good impression during an interview, all it takes is a few small details.