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_r
functie, 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.