webForumDet fria alternativet

Felkod Fatal error: Call to a member function save()

3 svar · 923 visningar · startad av annaco

annacoMedlem sedan apr. 200772 inlägg
#1

Hej!

Får följande felkod
Fatal error: Call to a member function save() on a non-object in /Volumes/htdocs/ac222it/Uppgift2/src/php/saveXML.php on line 10

Såhär ser koden ut:

<?php

	/**
	 *	Sparar det som finns i XML databasen.
	 */
	 
	const XML_DATABASE_PATH = 'src/xml/0.xml';
	
	function saveXML(){
		$stickers->save(self::XML_DATABASE_PATH);
		
	}
?>

förstår inte vad som är fel.

Säg till om ni behöver mer kod, har ett par filer till.

Tack på förhand.

annacoMedlem sedan apr. 200772 inlägg
#2

Har förstått på liknande trådar att ni behöver även denna fil.

<?php
include 'createPostIt.php';
include 'saveXML.php';

class Main
{
//---------------------------------------------------
// Private constants
//---------------------------------------------------

/\*\*
 \*	The path to the application's XML database.
 \*/
const XML_DATABASE_PATH = 'src/xml/0.xml';

//---------------------------------------------------
//  Constructor method
//---------------------------------------------------

/\*\*
 \*	The class constructor.
 \*/
public function \__construct()
{
	//kontrollerar om man vill lägga till en ny kommentar
	if (isset($\_GET\['id'\]) && isset($\_GET\['createPostIt'\])) {
		$this -\>createPostIt($\_GET\['id'\], $\_GET\['createPostIt'\]);
	}
	
	
}

//---------------------------------------------------
//  Public methods
//---------------------------------------------------

/\*\*
 \*	Laddar XML databasen och skriver ut texten som finns i den  
 \*/
public function createList()
{
	
	createPostIt($id,$text);
	
	$stickers = new DOMDocument();
	$stickers-\>load(self::XML_DATABASE_PATH);
	$stickers = $stickers-\>getElementsByTagName('sticker');
	$output	= '';
	
	foreach ($stickers as $sticker){	
		$text	= sticker-\>createElement('text')-\>item(0)-\>nodeValue;
		$output .= '\<li\>'.$text.'\</li\>\<br\>';
		}
		
	saveXML();
	
	return $output;
}

}

$main = new Main();

?>

annacoMedlem sedan apr. 200772 inlägg
#3

Ingen som kan hitta vad det är för fel??
Börjar känns lite panik för att jag inte kommer vidare med uppgiften.

metalboyMedlem sedan jan. 2005953 inlägg
#4

Var deklareras variabeln $stickers? I createList() sätts $stickers till en ny instans av DOMDocument, men deklareras variabeln utanför funktionen någonstans? Annars existerar variabeln endast i funktionen.

Enligt felmeddelandet så är $stickers inte en instans av ett objekt, och därför kan du inte anropa metoder i objektet.

121 ms totalt · 3 externa anrop · v20260731065814-full.30151723
0 ms — hämta forumlista (cache)
0 ms — hämta statistik (cache)
118 ms — hämta tråd, inlägg och bilagor (db)