php.de

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

 
 
LinkBack (1) Themen-Optionen Thema bewerten
Alt 14.09.2008, 22:23  
Neuer Benutzer
 
Registriert seit: 14.09.2008
Beiträge: 14
Rapidm befindet sich auf einem aufstrebenden Ast
Standard [Erledigt] [attribute2:protected]

Hallo allerseits!!

Ich sitze schon seit Stunden vor einem Problem und komm einfach nicht mehr weiter. Vielleicht kann mir ja hier jemand helfen.


Ich programmiere gerade mit der Immobilienscout24 API und versuche die abgespeicherte Region zu bekommen, welche in einem Array abgespeichert ist:

'Region' => GeoHierarchyElement::__set_state(array(
'geoHierarchyStatistic' => array ( ), 'attribute1' => '1276004',
'attribute2' => 'Brandenburg', ))


wenn ich

print_r(&value->Region)

ausgebe bekomme ich folgendes:

GeoHierarchyElement Object ( [geoHierarchyStatisticrivate] => Array ( ) [attribute1rotected] => 1276011 [attribute2rotected] => Rheinland-Pfalz )


Es handelt sich also um das Attribut attribute2 , welches protected ist.


Hat jemand ne Idee wie ich trotzdem "Rheinland-Pfalz" ausgeben kann????

Achja: Anfragen sind immer so: $value->

z.b: $value->Region->attribute2


Irgendwas mit $this muss ich glaube mache. Weiß aber nicht genau wie !!!


DANKE nochmals
Rapidm ist offline  
Sponsor Mitteilung
PHP Code Flüsterer

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

Alt 14.09.2008, 22:30  
moderatives Dielektrikum
 
Benutzerbild von nikosch
 
Registriert seit: 21.05.2008
Beiträge: 35.988
PHP-Kenntnisse:
Fortgeschritten
nikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunft
Standard

Bitte verwende [php] Tags hier im Forum.

Der Zugriff auf eine protected/private Variable kann nur aus dem Objekt selbst, also über eine Methode erfolgen.
Z.B.

PHP-Code:
public function getAtt2 ()
  {
  return (
$this->attribute2);
  } 
__________________
--
One pixel is still too big. Please make it smaller. ASAP.

Initiative Mittelstand.
Die wichtigste Gestaltungsregel im Screendesign ist Pi mal Daumen des Arbeitgebers.
--
nikosch ist gerade online  
Alt 15.09.2008, 10:09  
Neuer Benutzer
 
Registriert seit: 14.09.2008
Beiträge: 14
Rapidm befindet sich auf einem aufstrebenden Ast
Standard mhm...

Hi nochmal,

also wenn ich die Funktion genauso hinschreibe und dann mittels:

PHP-Code:
$region=$value->Region;
         
        echo 
getAtt2($region); 
aufrufen passiert gar nichts... woran kann das liegen? habe ich nen denkfehler?

Geändert von Rapidm (15.09.2008 um 10:14 Uhr).
Rapidm ist offline  
Alt 15.09.2008, 10:29  
Moderator
 
Benutzerbild von cycap
 
Registriert seit: 13.02.2008
Beiträge: 6.816
PHP-Kenntnisse:
Fortgeschritten
cycap ist einfach richtig nettcycap ist einfach richtig nettcycap ist einfach richtig nettcycap ist einfach richtig nettcycap ist einfach richtig nett
Standard

Nun dann wird es dafür entweder eine Methode geben oder du musst eine in die Klassen hinzufügen (was ich mir nicht vorstellen kann).

Falls so eine Methode hinzugefügt werden muss, dann sieht die aus wie die von Nikosch, nur halt mit den richtigen Variablen-Namen.
cycap ist offline  
Alt 15.09.2008, 10:41  
Neuer Benutzer
 
Registriert seit: 14.09.2008
Beiträge: 14
Rapidm befindet sich auf einem aufstrebenden Ast
Standard

Also es gibt in einer externen Datei ApiWrapper folgende Funktion:

PHP-Code:
  function getRegionsById($uuid){
          
$service $this->api->CreateGeoInfoService();
          
$regionsRequest $service->CreateRegionsRequest();
        
$result = new XmlRequestElement('Country',null,array('uuid' => $uuid));
        
$regionsResult $regionsRequest->DoRequest($result);
        
$resultArray $regionsResult->GetResult();
        return 
$this->geoToArray($resultArray);
      }

function 
geoToArray($resultArray){
          foreach (
$resultArray as $value){
          
$attributes $value->GetAttributes();
          
$child $value->GetChilds();
          
$geoarray[$attributes['uuid']]['uuid'] = $attributes['uuid'];
          
$geoarray[$attributes['uuid']]['GeoElement'] = $value->GetName();
          
$geoarray[$attributes['uuid']]['Name'] = $attributes['name'];
          
$geoHierarchyStatistic $child['GeoHierarchyStatistic'];
          if(
$geoHierarchyStatistic){
              
$statistic $geoHierarchyStatistic->GetAttributes();
              
$geoarray[$attributes['uuid']]['GeoHierarchyStatistic']['ImmoType'] = $statistic['ImmoType'];
             
$geoarray[$attributes['uuid']]['GeoHierarchyStatistic']['count'] = $statistic['count'];
          }
           }
        return 
$geoarray;
      } 
Ich habe nun folgendes in der Hauptdatei versucht:

PHP-Code:
$uuid $_REQUEST['uuid'];
    
        
$region getRegionsById($uuid);
        
print_r($region
Nur geht das auch nichts... Es wird gar nichts ausgegeben. Jemand ne Ahnung oder einen Tipp?
Rapidm ist offline  
Alt 15.09.2008, 10:58  
Neuer Benutzer
 
Registriert seit: 14.09.2008
Beiträge: 14
Rapidm befindet sich auf einem aufstrebenden Ast
Standard

Ich habe es irgendwie gelöst bekommen... Vielen Dank nochmal
Rapidm ist offline  
Alt 15.09.2008, 16:04  
moderatives Dielektrikum
 
Benutzerbild von nikosch
 
Registriert seit: 21.05.2008
Beiträge: 35.988
PHP-Kenntnisse:
Fortgeschritten
nikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunft
Standard

Zitat:
Hi nochmal,

also wenn ich die Funktion genauso hinschreibe und dann mittels:

PHP-Code:
$region=$value->Region;
         
        echo 
getAtt2($region); 
aufrufen passiert gar nichts... woran kann das liegen? habe ich nen denkfehler?
Der Vollständigkeit halber: Natürlich muß eine Methode immer auf das Objekt bezogen aufgerufen werden:

PHP-Code:
$value->Region->getAtt2(); 
__________________
--
One pixel is still too big. Please make it smaller. ASAP.

Initiative Mittelstand.
Die wichtigste Gestaltungsregel im Screendesign ist Pi mal Daumen des Arbeitgebers.
--
nikosch ist gerade online  
 


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

LinkBacks (?)
LinkBack to this Thread: http://www.php.de/php-tipps-2008/47437-erledigt-attribute2-protected.html
Erstellt von For Type Datum
Technorati: Discussion about “[attribute2:protected]” This thread Refback 15.09.2008 11:09

Besucher kamen über folgende Suchanfragen bei Google auf diese Seite
geohierarchyelement, php geohierarchystatistic:geohierarchyelement:private, immotype result immobilienscout24 api, immobilienscout api apiwrapper, php. de/php-tipps-2008/47437-erledigt-attribute2-protected. html, php value protected, geohierarchyelement object, immobilienscout getregionsbyid, php object print_r variable \:protected\, immobilienscout24 datenbank durchsuchen, immobilienscout24 apiwrapper.php, tutorial immobilienscout api, immoscout24 api uuid finden, immobilienscout if($_request), attribute2, apiwrapper.js fehler, geohierarchyelement::$attribute2

Alle Zeitangaben in WEZ +2. Es ist jetzt 16:59 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