не могу вызвать функцию из своего класса, но может иначе? - PullRequest
0 голосов
/ 06 сентября 2010
  • просто не могу получить результат от функции, вызываемой в своем классе ...

    require_once ($ _ SERVER [ 'DOCUMENT_ROOT'] "/ youradmin_v2 / скрипты / PHP / IPTC.php".);

    класс Media {

    function Media() {
        // connects to db
    }
    
    function getMetaData($mediaID){
        global $select;
    
        $mediaDB = $select->mediaSelect($mediaID);
        $filePath=$mediaDB['filePath'];
    
        $itpc =new Image_IPTC($filePath);
        return $itpc->getTag($tag,0)." called?";
    }
    

    функция newFileProcessing ($ file_name) { глобальный $ func;
    глобальный $ select, $ insert, $ update;

    $mediaID=$insert->addMedia($file_name, $filetype, $filePathImg,$testI);
    
    $mediaDB = $select->mediaSelect($mediaID);
    $filePath=$_SERVER['DOCUMENT_ROOT'].$mediaDB['pathToFile'];
    
    $update->updateQuery('media',"title='".$this->getMetaData($mediaID)."'");   
    

    }

    } $ media = new Media;

когда я использую $ media-> getMetaData ($ mediaID) на странице php, это работает? Нет ошибок, и когда его называют в классе "называется?" добавлен к записи, так что я думаю, что его сомнение связано с частью $ itpc = new Image_IPTC ($ filePath), которую можно посмотреть здесь;

класс iptc

Кто-нибудь может увидеть, что я делаю не так ?! любые указатели оценены.

лучше всего, дан.

1 Ответ

0 голосов
/ 06 сентября 2010
$this->getMetaData($mediaID)

не будет работать в функции newFileProcessing ($ file_name), поскольку она не является функцией-членом класса Media

если ваш код выглядел так, он должен работать

require_once($_SERVER['DOCUMENT_ROOT']."/youradmin_v2/scripts/php/IPTC.php"); 

class Media{

    function Media() {
        // connects to db
    }

    function getMetaData($mediaID){
        global $select;

        $mediaDB = $select->mediaSelect($mediaID);
        $filePath=$mediaDB['filePath'];

        $itpc =new Image_IPTC($filePath);
        return $itpc->getTag($tag,0)." called?";
    }


    function newFileProcessing($file_name){
      global $func;   
      global $select, $insert, $update;   

      $mediaID=$insert->addMedia($file_name, $filetype, $filePathImg,$testI);

      $mediaDB = $select->mediaSelect($mediaID);
      $filePath=$_SERVER['DOCUMENT_ROOT'].$mediaDB['pathToFile'];

      $update->updateQuery('media',"title='".$this->getMetaData($mediaID)."'");   
   }
}

$media = new Media;
...