Обект връща обект ?!

  • Автор Автор Noxy
  • Начална дата Начална дата

Noxy

Registered
Имам се един скрипт при запис на потребители в база данни и искам да извикам класа Uploads и от него метода upload_ones($file_info), като $file_info съдържа снимка, която се записва като файл, след което методът upload_ones, трябва да върне името на записания файл и от своя страна ивето на файла да беде вкарано в базата данни.


Конкретната реализация:
Код:
					if($username != false and isset($pass) and $email != false and $superadmin != false)
				{
                                   
                                    $filename = new Uploads();
                                    $filename->upload_ones($file_info);
                                    var_dump($filename);
                                    $pass = md5($pass);
                                    $sql = "INSERT INTO administrators (username, password, email, image, superadmin) VALUES('$username', '$pass', '$email', '$filename', '$superadmin' ) ";
                                    $model = new Model;
                                    $model -> connect();
                                    $model -> sqlQuery($sql);
                                    return true;
				}


Но тук излиза грешка,
Catchable fatal error: Object of class Uploads could not be converted to string in ...
Която ми казва че $filename e обект ?!?!

Ето и класа Uploads:
Код:
 class Uploads
    {
        function upload_ones($file_info)
        {

            $imagecount=0;
            if (is_array($file_info))
            {
                foreach ($file_info as $filenamekey => $imagefile)
                {
                    if ($imagecount + 1 == count($_SESSION["file_info"]))
                    {
                        $imagefile;
                        $filenamekey;
                    }
                    else
                    {
                        unset($imagefile, $filenamekey);
                    }
                    $imagecount++;
                }
            }

            $filename = "upload/$filenamekey.jpg";
            $fh = fopen($filename, 'w') or die("can't open file");
            fwrite($fh, $imagefile);
            fclose($fh);
            echo $filename;
            var_dump($filename);
            return $filename;
        }
    }




var_dump на $filename преди та изпищи скрипта:
object(Uploads)[7]

var_dump на $filename в самия метод:
string 'upload/191b6b8207eeef4948f77e3228162e11.jpg' (length=43)

Метода работи супер, но не мога да се обясня защо връща обект ?!?!
 
Е как да не е обект като го правиш обект

PHP:
$filename = new Uploads();

$filename ти е нова инстанция (обект) на класа uploads

Ако искаш да вземеш името на файла правиш така

$ime = $filename->upload_ones($file_info);

и вече в заявката ползваш $ime не $filename
 

Back
Горе