2017-12-31 76 views
0

현재 mySQLi 절차에서 객체 지향 스타일로 옮기려고합니다. 그래서 Jquery Post() 함수를 통해 객체를 PHP 파일에 전달했습니다. 아래 다음 PHP 측면에서PHP에서 객체에 액세스하기

JS 파일

var newemployer = { 
      newemployeremail:newemployeremail, 
      newcompanyname: newcompanyname, 
      secondpassword:secondpassword, 
     }; 
    var employerdata = JSON.stringify(newemployer); 
    console.log("in jquery: " + employerdata); 
     $.post('api/employerprocess.php', {employerdata:employerdata}, function(data){ 
      console.log(data); 
     }); 

:이있다 : 나는 위의 개체에 액세스 할 수

$employerdata = $_POST['employerdata']; 

$data = json_decode($employerdata, true); 
print_r($data['newemployeremail']); 

,하지만 그럴 수 없어 -> 연산자를 사용하여 객체의 값에 액세스 할 수 있습니다.

Trying to get property of non-object 

내가 -> 연산자를 사용하고 싶습니다 :

$accessed = $data->newemployeremail; 
var_dump($data->newemployeremail); 
echo $data->newemployeremail; 
echo $accessed; 
echo 'Hi'; 

$ 액세스 변수 위해서 var_dump, 객체 각각의 수율이 오류의 에코, 마지막 두 문장은 마지막에 NULL이 . 나는 그것을 얻지 않는다. -> 연산자를 사용하여 객체의 값에 액세스 할 수없는 이유는 무엇입니까?

+0

'json_decode ($ employerdata, true)를, 두 번째 매개 변수로 TRUE ''과'json_decode는 배열을 반환 – vnt

답변

0

truejson_decode()의 두 번째 인수로 "반환 된 객체는 연관 배열로 변환됩니다"를 의미합니다. 그러므로 당신은 대상이 아니라 배열을 받고 있습니다.

당신이 중 하나를 배열 구문을 사용하여 객체 또는 액세스 속성을 받기 위해 두 번째 인수에 false 전달해야합니다 $accessed = $data['newemployeremail'];

0

당신은

$data = json_decode($employerdata, true); 
// the true param in json_decode mean that teh result is converted in associative array 
echo $data['newemployeremail']; 

은 그래서 당신은 배열이 아닌 객체를 연관 배열로 값을 할당하는

후 실제 예를 들어없이 JSON 디코딩을 할당하려고 :

$data = json_decode($employerdata); 
echo $data->newemployeremail; 
관련 문제