Değeri tarafından geçirilir Object dizi?

2 Cevap php

Belki bir şey bakan, ama ben bu tökezledi:

$employees = new stdClass();

$employee_id = 5;
$employee = array();
$employee["id"] = $employee_id;
$employee["name"] = "John;

$employees->$employee_id = $employee;

Şimdi çalışan Adı değiştirmek istiyorsanız:

$employee = $employees->$employee_id;
$employee["name"] = "Tom";

Şimdi iki sorun var:

  1. Çalışanların içinde çalışanların hala John adında çünkü çalışan nesne, referans olarak kabul edilmesi değil gibi görünüyor.

  2. How would I retrieve the employee name? echo {$employee->$employee_id}["name"]; does not work

Yardımın için teşekkürler,

Kırlangıç

2 Cevap

1) PHP nadiren referans geçmek yok. Eğer referans bir geçiş zorlamak istiyorsanız, = ve kullanımı Operatör:

$employees->$employee_id =& $employee;

Read more here: http://php.net/references

2) $employees->$employee_id ilk etapta oldukça çirkin, ama burada olası bir çözüm kullanmak için:

$current_employee =& $employee->$employee_id;
echo $current_employee['name'];

Sen orada olmamalı ekstra $ var.

//$employees->$employee_id = $employee;     Wrong
$employees->employee_id = $employee;

Dolar ile, php değişkenin değerini kullanır. örneğin ...

$name = "car";
$obj->car = 5;
$obj->$name = 10;

echo $obj->car;  // outputs 10