/** * @todo Is the reference still needed? PHP4 needed it for objects, but PHP5 always * passes objects by reference. And PHP5 uses a copy-on-write approach, so that all * values are passed as "reference", in case no changes take place. * * @todo no type markers ("\6", for example) in this method! */ protected function writeAmf3Data(&$d) { if (is_int($d)) { //int $this->writeAmf3Number($d); return; } elseif (is_float($d)) { //double $this->outBuffer .= ""; $this->writeDouble($d); return; } elseif (is_string($d)) { // string $this->outBuffer .= ""; $this->writeAmf3String($d); return; } elseif (is_bool($d)) { // boolean $this->writeAmf3Bool($d); return; } elseif (is_null($d)) { // null $this->writeAmf3Null(); return; } elseif (Amfphp_Core_Amf_Util::is_undefined($d)) { // undefined $this->writeAmf3Undefined(); return; } elseif (Amfphp_Core_Amf_Util::is_date($d)) { // date $this->writeAmf3Date($d); return; } elseif (is_array($d)) { // array $this->writeAmf3Array($d); return; } elseif (Amfphp_Core_Amf_Util::is_byteArray($d)) { //byte array $this->writeAmf3ByteArray($d->data); return; } elseif (Amfphp_Core_Amf_Util::is_Xml($d)) { // Xml $this->writeAmf3Xml($d); return; } elseif (Amfphp_Core_Amf_Util::is_XmlDocument($d)) { // XmlDoc $this->writeAmf3XmlDocument($d); return; } elseif (is_object($d)) { $this->writeAmf3Object($d); return; } throw new Amfphp_Core_Exception("couldn't write object " . print_r($d, false)); }
/** * @todo Is the reference still needed? PHP4 needed it for objects, but PHP5 always * passes objects by reference. And PHP5 uses a copy-on-write approach, so that all * values are passed as 'reference', in case no changes take place. * * @todo no type markers ("\6', for example) in this method! */ protected function writeAmf3Data($d) { if (is_int($d)) { //int $this->writeAmf3Number($d); return; } elseif (is_float($d)) { //double $this->outBuffer .= ""; $this->writeDouble($d); return; } elseif (is_string($d)) { // string $this->outBuffer .= ""; $this->writeAmf3String($d); return; } elseif (is_bool($d)) { // boolean $this->writeAmf3Bool($d); return; } elseif (is_null($d)) { // null $this->writeAmf3Null(); return; } elseif (Amfphp_Core_Amf_Util::is_undefined($d)) { // undefined $this->writeAmf3Undefined(); return; } elseif (Amfphp_Core_Amf_Util::is_date($d)) { // date $this->writeAmf3Date($d); return; } elseif (is_array($d)) { // array $this->writeAmf3Array($d); return; } elseif (Amfphp_Core_Amf_Util::is_byteArray($d)) { //byte array $this->writeAmf3ByteArray($d->data); return; } elseif (Amfphp_Core_Amf_Util::is_Xml($d)) { // Xml $this->writeAmf3Xml($d); return; } elseif (Amfphp_Core_Amf_Util::is_XmlDocument($d)) { // XmlDoc $this->writeAmf3XmlDocument($d); return; } elseif (is_object($d)) { $explicitTypeField = Amfphp_Core_Amf_Constants::FIELD_EXPLICIT_TYPE; if (isset($d->{$explicitTypeField})) { $this->writeAmf3TypedObject($d); return; } else { $this->writeAmf3AnonymousObject($d); return; } } throw new Amfphp_Core_Exception("couldn't write object " . print_r($d, false)); }