简体   繁体   中英

PHP populate array inside a function

i have a small problem with my php code.

i've created a class for Clients, to return me a list with all clients. The problem is when i call the function from outsite, it dont show me the clietsList.

<?php 

$returnData = array();

class Clients
{
     public function readAll(){
        $query = "SELECT * FROM clients";
        $result = $this->con->query($query);
        if ($result->num_rows > 0){
            while ($row = $result->fetch_assoc()){
                $returnData['clientsList'][] = $row;
            }
            return $returnData;
        }
        else{
            echo "No found records";
        }
    }
}


if ($auth->isAuth()){
    $returnData['message'] = "you are loggedin, so is ok";
    $clientsObj = new Clients();
    $clientsObj->readAll();
}

echo json_encode($returnData);
?>

and the result is like that, but without clietslist

{
  "message": "you are loggedin, so is ok"
}

Where im doing wrong? Thanks for your answer. i want to learn php, im begginer. thanks in advance.

You need to get return value of function in a variable:

$returnData['message'] = "you are loggedin, so is ok";
$clientsObj = new Clients();
$returnData['clients'] =    $clientsObj->readAll();

$returnData on you first line will not be same as $returnData in your function. $returnData in readAll function will be a new variable.

I suggest you to read about variable scope in php. https://www.php.net/manual/en/language.variables.scope.php

Now, You will need to store returned value from function in a variable like this

$returnData['message'] = "you are loggedin, so is ok";
$clientsObj = new Clients();
$clientListArray =  $clientsObj->readAll(); //store returned value in a variable
$returnData['clientsList'] = $clientListArray['clientsList'];

The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM