Задать вопрос

Как отладить ошибку PHP Notice?

Есть:
<?php
require_once "lib/PlaylistManager.php";
require_once "lib/PlaylistBuilder.php";
require_once "lib/Uploader.php";

$config = yaml_parse(file_get_contents("config.yml"));
$d = dir($config["music_path"]);
while (false !== ($entry = $d->read())) {
  if ($entry == ".." || $entry == ".") continue;
  $builder = new PlaylistBuilder();
  $manager = new PlaylistManager();
  try {
    $dir = $config["music_path"]."/".$entry;
    echo "Работа с {$dir}\n";
    $playlist = $builder->build($dir);
    $uploader = new Uploader();
    $mp3s = array();
    echo "Плейлист существует?\n";
    if ($manager->isNew($playlist->title)->status) {
      echo "У нас уже есть этот плейлист. Пропуск...\n";
      continue;
    } else {
      echo "Новый плейлист\n";
      echo "Создание плейлист {$playlist->title}\n";
      $result = $manager->createPlaylist($playlist);
      if ($result == NULL || $result->status == "ERR") {
        echo "Не удается создать плейлист\n";
        continue;
      }
      if ($result->status == "ERR") {
        echo "Не удается создать плейлист\n";
        continue;
      }
      $playlist_id = $result->playlist_id;
      echo "ID плейлиста $playlist_id\n";
    }
    echo "Загрузка треков в {$playlist->title}\n";
    foreach ($playlist->tracks as $track) {
      echo "Загрузка $track\n";
      try {
        $file_id = $uploader->upload($track)->file_id;
      } catch(Exception $e) {
        echo "Ошибка загрузки файла ".$e->getMessage()."\n";
        continue;
      }  
      echo "ID файла $file_id\n";
      if (empty($file_id)) {
        echo "Не удалось загрузить файл... Пропустить его\n";
        continue;
      }
      echo "Добавить этот трек в плейлист\n";
      try {
        echo $manager->addMp3ToPlaylist($playlist_id, $file_id)->status."\n";
      } catch(Exception $e) {
        echo "Ошибка добавления трек в плейлист ".$e->getMessage()."\n";
      }  
    }
  } catch (IncompletePlaylistException $e) {
    echo $e->getMessage()."\n";
  }  
}
?>


Врубаю, вылетает ошибка
PHP Notice: Trying to get property of non-object in /home/likvidator22/pusha/pusha_music.php on line 19

Что скажете ?
  • Вопрос задан
  • 2330 просмотров
Подписаться 2 Оценить Комментировать
Пригласить эксперта
Ответы на вопрос 3
проверь, что возвращает метод PlaylistManager::isNew()
явно не объект
а ты пытаешься обратиться к свойству ->status того, что он возвращает

есть подозрение, что "->status" тут вообще не надо, судя по названию, метод isNew должен возвращать булеан, который и проверяется в if

да?
Ответ написан
Комментировать
mzcoding
@mzcoding
Web-Разработка
Тама же написано черным по белому, что переменная не является объектом в 19 строке, к которому вы обращаетесь. Можно нотис закрыть , но лучше исправить
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы
18 дек. 2024, в 15:00
300 руб./в час
18 дек. 2024, в 14:53
30000 руб./за проект
18 дек. 2024, в 14:45
25000 руб./за проект