Re: Unexcepted $this

From: Date: Mon, 10 Mar 2008 17:43:39 +0000
Subject: Re: Unexcepted $this
References: 1 2 3  Groups: php.general 
Request: Send a blank email to php-general+get-271218@lists.php.net to get a copy of this message
Philip Thompson wrote:
On Mar 10, 2008, at 8:32 AM, Ray Hauge wrote:
Murat BEŞER wrote:
I can't under stood but PHP gaves me an error: "UnExcepted $this" for " || $this->getFileExtension($file) == 'jpg' " When I removed jpg extension check it's okay... PHP script runs well. What is the problem :) public function loadImages($folder) {
       $result = $this->filemanager->fecthFiles($folder);
       $images = array();
       if (sizeof($result)>=1 && $result !== false) {
           foreach ($result as $file) {
if ($this->getFileExtension($file) == 'gif' || $this->getFileExtension($file) == 'png' || $this->getFileExtension($file) == 'jpg') {
                   $images[] = array('name'=>$file);
               }
           }
       }
       return $images;
}
Try storing the value in a variable first. It'll also have the side-effect of being marginally faster too.
Good call.
$extension = $this->getFileExtension($file); if ($extension == 'gif' || $extension || 'png' || $extension == 'jpg') {
Correction: ... $extension == 'png' ... Personally, I like the in_array() version better - it cleaner and you can expand upon it more more easily. $extensions = array('gif, 'png', 'jpg' [, 'm4a'[, 'etc']]); if (in_array($extension, $extensions)) { ... }
    // do something
} That might help, but I would think that the way you had it would also work. Let us know what happens when you use the variable like I showed above. Thanks, -- Ray Hauge
HTH, ~Philip "Personally, most of my web applications do not have to factor 13.7 billion years of space drift in to the calculations, so PHP's rand function has been great for me..." ~S. Johnson
Thanks for the catch. I work from home and I hadn't had my coffee yet in the morning. I usually check my news and email right after I get up and before I go to work :) I have been starting to use in_array more often as well. Far too many times I'll have to go back and add more options later, then the IF statement gets huge. Someday I'll kick the habit for good though. Oh, it might also be a bit easier to store the acceptable extensions in an array before the IF statement $ext = $this->getFileExtension($file); $acceptableExtensions = array('png', 'gif', 'jpg'); if ( in_array($ext, $acceptableExtensions) ) { // do something } That way the conditional doesn't grow as more and more values get added. -- Ray Hauge www.primateapplications.com

« previous php.general (#271218) next »