hoe een object in een string in php te converteren

Mogelijk duplicaat:
PHP ToString()-equivalent

hoe een object naar een string in php te converteren

Eigenlijk heb ik te maken met webservice-API’s. Ik wil de uitvoer van de ene API gebruiken als invoer voor een andere API. wanneer ik dit probeer te doen, kreeg ik een foutmelding zoals deze: Catchable fatale fout: Object van klasse std kon niet worden geconverteerd naar string in C:\ …

dit is de uitvoer van de eerste API::stdClass Object ( [document_number] => 10ba60 ) nu wil ik alleen dat nummer gebruiken als invoer voor 2e AP

print_r en _string() werken beide niet in mijn geval


Antwoord 1, autoriteit 100%

U kunt aanpassen hoe uw object wordt weergegeven als een tekenreeks door een __toString()-methode in uw klasse te implementeren, zodat wanneer uw object type cast als een string(expliciete type cast $str = (string) $myObject;, of automatische echo $myObject) u kunt bepalen wat is inbegrepen en het tekenreeksformaat.

Als u alleen de gegevens van uw object wilt weergeven, zou de bovenstaande methode werken. Als u uw object in een sessie of database wilt opslaan, moet u serialiseren het, zodat PHP weet hoe het je instantie moet reconstrueren.

Enkele code om het verschil aan te tonen:

class MyObject {
  protected $name = 'JJ';
  public function __toString() {
    return "My name is: {$this->name}\n";
  }
}
$obj = new MyObject;
echo $obj;
echo serialize($obj);

Uitvoer:

Mijn naam is: JJ

O: 8: “MyObject”: 1: {S: 7: “* Naam”; S: 2: “JJ”;}


Antwoord 2, Autoriteit 45%

Gebruik de gietoperator (string)$yourObject;


Antwoord 3, Autoriteit 17%

U hebt de print_rfunctie, controle docs .


Antwoord 4, Autoriteit 10%

Er is een object serialisatie module, met de Serialize functie U kunt elk object serialiseren.


Antwoord 5, Autoriteit 6%

In uw geval moet u eenvoudig

gebruiken

$firstapiOutput->document_number

Zoals de invoer voor de tweede API.

Other episodes