php.de

Zurück   php.de > Webentwicklung > PHP Einsteiger > PHP Tipps 2008

 
 
LinkBack Themen-Optionen Thema bewerten
Alt 07.12.2007, 12:53  
Erfahrener Benutzer
 
Registriert seit: 12.05.2005
Beiträge: 1.037
PHP-Kenntnisse:
Fortgeschritten
notyyy befindet sich auf einem aufstrebenden Ast
Standard serialize

ich habe nie den sinn von serialize verstanden und habe nun mal ein wenig gebastelt... was leider nicht funktioniert.

serialize.php
PHP-Code:
<?php
class foo
{
    function 
test()
    {
        echo 
"foo - test";
    }
}

$foo serialize(new foo);
file_put_contents('write.php',$foo);

?>
unserialize
PHP-Code:
<?php
$foo 
unserialize(file_get_contents("write.php"));
$foo::test();
?>
er spuckt den fehler:
Parse error: parse error, unexpected T_PAAMAYIM_NEKUDOTAYIM in D:\xampp\htdocs\test\unserialize.php on line 4



wo liegt mein fehler ?
wo nutzt serialize was ?
hab ich die funktion "verstanden" ?
notyyy ist offline  
Sponsor Mitteilung
PHP Code Flüsterer

Registriert seit: 21.08.2005
Beiträge: 4682
PHP-Kenntnisse:
Fortgeschritten

Alt 07.12.2007, 13:17  
Erfahrener Benutzer
 
Registriert seit: 17.06.2008
Beiträge: 125
squig befindet sich auf einem aufstrebenden Ast
Standard

Hola.

Zur Serialisierung:
http://de.wikipedia.org/wiki/Serialisierung
http://en.wikipedia.org/wiki/Serialization#PHP

Zu Deiner Fehlermeldung:
Zitat:
the foreign: unexpected T_PAAMAYIM_NEKUDOTAYIM

Full message:
Parse error: parse error, unexpected T_PAAMAYIM_NEKUDOTAYIM in code.php

Example code:
Code:

<?php
class foo{
function bar(){
// do something
}
}

$foo::bar();
?>


What does it mean?
You cannot use the :: operator on a variable, but only on the name of a class.
Change the example to
Code:

foo::bar();

and it works.

What does it mean?
As it turns out, PAAMAYIM NEKUDOTAYIM is hebrew in latin letters and means something like 'double colons'. Probably a PHP developer's insider joke.
Und der entsprechende Manuallink:
http://de2.php.net/manual/de/languag...ekudotayim.php


Bis dääähne.
squig ist offline  
Alt 07.12.2007, 13:19  
Erfahrener Benutzer
 
Registriert seit: 13.05.2006
Beiträge: 434
Curanai ist zur Zeit noch ein unbeschriebenes Blatt
Standard

PHP-Code:
<?php
// classa.inc:
  
  
class {
      var 
$one 1;
    
      function 
show_one() {
          echo 
$this->one;
      }
  }
  
// page1.php:

  
include("classa.inc");
  
  
$a = new A;
  
$s serialize($a);
  
// store $s somewhere where page2.php can find it.
  
$fp fopen("store""w");
  
fwrite($fp$s);
  
fclose($fp);

// page2.php:
  
  // this is needed for the unserialize to work properly.
  
include("classa.inc");

  
$s implode("", @file("store"));
  
$a unserialize($s);

  
// now use the function show_one() of the $a object.  
  
$a->show_one();
?>
... vielleicht hilft es Dir weiter.
__________________
Manche Menschen sind wie Schnitzel - nicht zäh, aber beidseitig bekloppt!
Curanai ist offline  
Alt 07.12.2007, 13:27  
Moderator und Wett-König
 
Benutzerbild von dr.e.
 
Registriert seit: 21.05.2008
Beiträge: 3.633
PHP-Kenntnisse:
Fortgeschritten
dr.e. ist ein Lichtblickdr.e. ist ein Lichtblickdr.e. ist ein Lichtblickdr.e. ist ein Lichtblickdr.e. ist ein Lichtblickdr.e. ist ein Lichtblick
dr.e. eine Nachricht über Skype™ schicken
Standard

Hallo notyyy,

serialize()/unserialize() wird im Allgemeinen für Caching-Mechanismen von Datenobjekten verwendet. Das hat den Vorteil, dass man Daten, die aus dem Cache gezogen werden, nicht erst wieder in Objekte mappen muss, sondern diese sofort als Objektbaum/Objektliste vorhanden ist.

Bei unseren Webapplikationen wird das zum Cachen von Navigationsstrukturen, Inhalten, Datenbank-Statement-Ergebnisse, ... verwendet. In Hochlastsystemen ist jedoch mit unserialize() häufiger Probleme (aktuell in PHP 4.3.10), da bei knappem Speicher (RAM) das unserialize() des Öfteren auf's Näschen fällt.
__________________
Viele Grüße,
Dr.E.

~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
1. Think about software design before you start to write code!
2. Discuss and review it together with experts!
3. Choose good tools (-> Adventure PHP Framework (APF))!
4. Write clean and reusable software only!
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
dr.e. ist offline  
Alt 07.12.2007, 13:33  
Erfahrener Benutzer
 
Registriert seit: 12.05.2005
Beiträge: 1.037
PHP-Kenntnisse:
Fortgeschritten
notyyy befindet sich auf einem aufstrebenden Ast
Standard

d.h. ich schreibe garnich das gane objekt in die datei, sondenr nur die inhalte der variablen ?
notyyy ist offline  
Alt 07.12.2007, 14:55  
Moderator und Wett-König
 
Benutzerbild von dr.e.
 
Registriert seit: 21.05.2008
Beiträge: 3.633
PHP-Kenntnisse:
Fortgeschritten
dr.e. ist ein Lichtblickdr.e. ist ein Lichtblickdr.e. ist ein Lichtblickdr.e. ist ein Lichtblickdr.e. ist ein Lichtblickdr.e. ist ein Lichtblick
dr.e. eine Nachricht über Skype™ schicken
Standard

... und wo ist da jetzt der Unterschied? Versuch mal folgenden Code nachzuvollziehen:

PHP-Code:
class testclass
{
   public 
$id;
   function 
testclass(){
   }
}

$List = array();

for(
$i 0$i 100$i++){
   
$List[$i] = new testclass();
   
$List[$i]->id $i +1;
}

echo 
'<pre>'.print_r($List,true).'</pre>';

file_put_contents('cachefile.txt',serialize($List));

$CachedList unserialize(trim(file_get_contents('cachefile.txt')));

echo 
'<pre>'.print_r($CachedList,true).'</pre>'
__________________
Viele Grüße,
Dr.E.

~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
1. Think about software design before you start to write code!
2. Discuss and review it together with experts!
3. Choose good tools (-> Adventure PHP Framework (APF))!
4. Write clean and reusable software only!
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
dr.e. ist offline  
Alt 08.12.2007, 19:25  
Erfahrener Benutzer
 
Registriert seit: 12.05.2005
Beiträge: 1.037
PHP-Kenntnisse:
Fortgeschritten
notyyy befindet sich auf einem aufstrebenden Ast
Standard

wunderbar, danke ich habe es nun verstanden, habe die funktion total missverstanden.
notyyy ist offline  
 


Themen-Optionen
Thema bewerten
Thema bewerten:

Forumregeln
Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are an
Gehe zu

Ähnliche Themen
Thema Autor Forum Antworten Letzter Beitrag
Probleme bei Speicherung von serialize() Strings Manni2k PHP Tipps 2006 13 15.10.2006 15:06
serialize / unserialize mAy^daY PHP Tipps 2005-2 2 11.08.2005 01:05
serialize() und unserialize() PHP Tipps 2005-2 11 22.06.2005 13:20
Problem mit Serialize (mal wieder) PHP-Fortgeschrittene 16 07.01.2005 14:35
[Erledigt] Serialize problem. PHP-Fortgeschrittene 9 26.10.2004 21:37
Immer noch Probleme mit serialize und unserialize PHP-Fortgeschrittene 13 15.08.2004 13:15


Alle Zeitangaben in WEZ +1. Es ist jetzt 01:43 Uhr.




Powered by vBulletin® Version 3.7.2 (Deutsch)
Copyright ©2000 - 2012, Jelsoft Enterprises Ltd.
Search Engine Optimization by vBSEO 3.2.0
Aprilia-Forum, Aquaristik-Forum, Liebeskummer-Forum, Zierfisch-Forum, Geizkragen-Forum

Creative Commons License
Dieser Inhalt ist unter einer Creative Commons-Lizenz lizenziert.