2010-12-23 5 views
0

Ich habe ein Problem mit meinem PHP Vars und bekommen sie auf den richtigen Wert gesetzt. Im Grunde habe ich eine Methode, die aussieht, um zu sehen, ob Sie ein Geschäft existiert und auch, ob dieses Geschäft einen Schwesterladen hat oder nicht. Ich schaue dann nach, ob das als Bild im Dateisystem gespeichert wird, wenn es nicht angezeigt wird und auf das Image wartet.PHP Variable Problem

Mein Problem ist, dass, wenn das Geschäft einen Schwesterspeicher hat, dann wird es nur das Bild des Schwesterspeichers zeigen, sowohl für die Schwester und der Hauptspeicher ist hier mein Code

if(isset($storelocation)) { 
    //var_dump($sofalocation); 
    $path = $_SERVER{'DOCUMENT_ROOT'}.'/webroot/images/stores/'.strtolower(str_replace(' ', '-', $storelocation['storename'])).'.jpg'; 
    if(file_exists($path)) { 
    //echo $path; 
    $this->assign('storeimage', 'images/stores/'.strtolower(str_replace(' ', '-', $storelocation['storename'])).'.jpg'); 
    //var_dump($sofalocation['storename']); 
    } else { 
    echo $path; 
    $this->assign('storeimage', 'images/stores/awaiting-image.jpg'); 
    } 
} 

if(isset($sisterlocation)) { 
    $path = $_SERVER{'DOCUMENT_ROOT'}.'/webroot/images/stores/'.strtolower(str_replace(' ', '-', $sisterlocation['storename'])).'.jpg'; 
    if(file_exists($path)) { 
    $this->assign('sisterimage', 'images/stores/'.strtolower(str_replace(' ', '-', $sisterglocation['storename'])).'.jpg'); 

    } else { 
    echo $path; 
    $this->assign('sisterimage', 'images/stores/awaiting-image.jpg'); 
    // var_dump($sisterlocation['storename']); 
    } 
} 

Das Merkwürdige ist dass das storlocation isset scheint fehlzuschlagen, wenn ich die var vor dem isset zurückmelde, hat irgendjemand irgendwelche ideen?

+0

nehmen Sie $ storlocation und $ siverterlocation als Argumente für Ihre Methode? Wenn nicht, müssen Sie sie mit dem globalen Schlüsselwort oben in der Methode deklarieren: global $ storelocation, $ sisterlocation; Es wäre hilfreich, deine ganze Methode zu sehen. – bigwebguy

Antwort

0

Erstellen Sie eine geschützte Methode, um dies auszuführen, und übergeben Sie Speicher als Argument. Dies wird Ihr Problem lösen.

protected function _prepareImage($storeName, $storeLocation) 
{ 
    $path = $_SERVER{'DOCUMENT_ROOT'}.'/webroot/images/stores/'.strtolower(str_replace(' ', '-', $storeLocation['storename'])).'.jpg'; 
    if(file_exists($path)) { 
    $this->assign($storeName, 'images/stores/'.strtolower(str_replace(' ', '-', $storeLocation['storename'])).'.jpg'); 

    } else { 
    echo $path; 
    $this->assign($storeName, 'images/stores/awaiting-image.jpg'); 
    // var_dump($storeLocation['storename']); 
    } 
} 
+0

Wie würde ich das tun? Ich bin ziemlich neu in PHP –