Re: Differences
| From: | Timmy Sjöstedt | Date: | Thu, 04 Oct 2012 01:01:12 +0000 |
| Subject: | Re: Differences | ||
| References: | 1 | Groups: | php.general |
| Request: | Send a blank email to php-general+get-319345@lists.php.net to get a copy of this message | ||
Hi David,
A "return" statement will immediately halt execution of the current function and return to where it was called.
In your case, the foreach loop will execute once and find a return statement, and thus halting execution of the function and returning only the first filename.
echo() is simply another function call (except it's a language construct and not a function) and will not halt execution as "return" does.
What you want to do is something like:
$filenames = array();
foreach ($matches as $filename) {
$filenames[] = $filename;} return $filenames; // this is now an array containing all the filenames But this is rather unneccesary, as $matches already is an array and contains everything you need. Thus all you have to do is: return $matches; Which in turn can be shortened to: function filename($prefix) {
return glob('images/property_pics/'. $prefix .'*');
}
Happy Thursday!
Timmy
On 2012-10-04 02:48, David McGlone wrote:
Hi everyone, I have been playing around with some code the list helped me with a while back and I'm not grasping the concept between return and echo and the PHP manual doesn't answer this, unless I'm missing something. There is an example at the very bottom of PHP's return manual, but it's confusing. So now I'm left wondering why return will only give me the first result in an array, but echo will give me all the results of the array. Using stuart's example he had sent me a while back I've messed around with it and modified it to better understand it: function filename($prefix) { $matches = glob('images/property_pics/'.$prefix.'*'); foreach($matches as $filename){ return $filename;}} echo completeImageFilename($row['MLS_No']); With the above code I only get the first image of each picture name, but when I change return to echo, it groups and displays all the pics that have the same picture name. -- David M.