Today will be one such example. The problem is simple - print your name 10 times. I will walk you through multiple solutions in PHP, each markedly different from the last, from the most obvious to the most intricate.
1. Straight up printing
Yes, this is a solution. I did say "most obvious", but this is clumsy, inelegant, and will quickly fail you if you need to scale up.
echo "TeochewThunder<br />";
echo "TeochewThunder<br />";
echo "TeochewThunder<br />";
echo "TeochewThunder<br />";
echo "TeochewThunder<br />";
echo "TeochewThunder<br />";
echo "TeochewThunder<br />";
echo "TeochewThunder<br />";
echo "TeochewThunder<br />";
echo "TeochewThunder<br />";
echo "TeochewThunder<br />";
echo "TeochewThunder<br />";
echo "TeochewThunder<br />";
echo "TeochewThunder<br />";
echo "TeochewThunder<br />";
echo "TeochewThunder<br />";
echo "TeochewThunder<br />";
echo "TeochewThunder<br />";
echo "TeochewThunder<br />";
2. Looping
Here, I present multiple solutions, but they all use basically same method - a looping construct. Safe enough, but boring. There are even more variations in a language like Ruby, with Until and Do-Until loops, but we won't cover them here.A For loop
for ($i = 0; $i < 10; $i++)
{
echo "TeochewThunder<br />";
}
{
echo "TeochewThunder<br />";
}
A While loop
$i = 0;
while ($i < 10)
{
echo "TeochewThunder<br />";
$i ++;
}
while ($i < 10)
{
echo "TeochewThunder<br />";
$i ++;
}
A Do-While loop
$i = 0;
do
{
echo "TeochewThunder<br />";
$i ++;
} while ($i < 10)
do
{
echo "TeochewThunder<br />";
$i ++;
} while ($i < 10)
3. A Foreach loop
This one uses an array containing 10 elements, all of them your name. Then you just iterate through the array with a simple Foreach loop. It's great if the elements in the array are different from each other, but pretty silly if they're all the same.
$arr = array("TeochewThunder", "TeochewThunder", "TeochewThunder", "TeochewThunder", "TeochewThunder", "TeochewThunder", "TeochewThunder", "TeochewThunder", "TeochewThunder", "TeochewThunder");
foreach ($arr as $name)
{
echo $name . "<br />";
}
foreach ($arr as $name)
{
echo $name . "<br />";
}
4. Recursion
Now this is interesting. Here, we write a function that calls itself repeatedly, each time increasing the value of the argument i, and only stops when i is equal to max. Recursion is a useful software engineering trick, but perhaps overkill for this use.
printName("TeochewThunder<br />", 0, 10);
function printName($name, $i, $max)
{
if ($i < $max)
{
echo $name;
printName($name, $i + 1, 10);
}
else
{
return;
}
}
function printName($name, $i, $max)
{
if ($i < $max)
{
echo $name;
printName($name, $i + 1, 10);
}
else
{
return;
}
}
5. The Replace trick
This is a nice one. Again, it's overkill, but so sly! You have a string of 10 asterisks, and simply replace each asterisk with the string you want with a basic str_replace() function call, then print the result. And if you need to print more times? Simply run str_replace() before the final str_replace() call, substituting each asterisk with multiple asterisks.More for if you want to challenge someone to print the same string multiple times without looping.
$str = "**********";
$str = str_replace("*", "TeochewThunder<br />", $str);
echo $str;
$str = str_replace("*", "TeochewThunder<br />", $str);
echo $str;
And there you have it...
... five ways to accomplish the same thing. Programming food for thought!
**********,
T___T
T___T
No comments:
Post a Comment