Mailinglisten-Archive |
Nico Haase schrieb:
> Hallo Yannik,
>
> Yannik Hampe schrieb:
>>> function __sleep() {
>>> return( array_keys( get_object_vars( &$this ) ) );
>>> }
>>>
>>> Nun muckelt das aber auf einigen Servern mit folgender Fehlermeldung rum:
>>>
>>> Warning: Call-time pass-by-reference has been deprecated - argument passed
>>> by value; If you would like to pass it by reference, modify the declaration
>>> of get_object_vars(). If you would like to enable call-time
>>> pass-by-reference, you can set allow_call_time_pass_reference to true in
>>> your INI file. However, future versions may not support this any longer
>>>
>>> Klappt die Serialisierung auch, wie ich mir das denke, wenn ich das $this
>>> als Variable weiterreiche? An sich müsste es doch gehen, oder?
>> Wie wäre es, wenn du einfach dieses & da entfernst? Wieso hast du das
>> überhaupt da hingeschrieben?
>
> http://de2.php.net/manual/en/language.oop5.magic.php#83556 enthält bspw.
> ebendas. Ich hatte es aber aus einem anderen Kommentar auf den PHP-Seiten.
> Gibts da noch Einsprüche? Irgendwas werden sich ja auch die Leute gedacht
> haben, die da eben das & eingebaut haben.
hat er sich vielleicht, aber auf jeden Fall hat er falsch gedacht,
das & bei einer Variable dient dazu die Referenz für diese Variable und
nicht den Inhalt selber zu verwenden/übergeben, ob an eine Funktion der
Inhalt oder eine Referenz übergeben wird, wird aber nicht beim
Funktionsaufruf bestimmt, sondern bei der Definition der Funktion, also
hier:
function myFunc(&$var);
und _nicht_:
myFunc(&$var);
und Objekte werden sowieso immer als Referenz übergeben (in PHP 5).
--
Sebastian Mendel
php::bar PHP Wiki - Listenarchive