I want to get the function that can accept a string parameter and return it to json format. for example if i call $ballcolor->getBall("orange"); then the output// should be: { "color":"orange", "ball": ["basketball"]}
and if a call does not have any color for that ball: { "color":"black", "ball": []}
class BallColor
{
private $ballcolor;
function BallColor($ballcolor)
{
$this->ballcolor = $ballcolor;
}
public function getBall($color)
{
return NULL;
}
}
$ballcolor = new BallColor(array(
"orange" => array("basketball"),
"white" => array("football")
));
echo $ballcolor->getBall("orange");
echo "
";
echo $ballcolor->getBall("black");
Get the desired value out of $this->ballcolor
after checking it's there, then build the array you need to return, then json_encode that:
class BallColor
{
private $ballcolor;
function __construct($ballcolor)
{
$this->ballcolor = $ballcolor;
}
public function getBall($color)
{
// condensed into oneliners:
if(isset($this->ballcolor[$color])) {
return json_encode(Array("color" => $color, "ball" => $this->ballcolor[$color]));
} else {
return json_encode(Array("color" => "black", "ball" => []));
}
}
}
$ballcolor = new BallColor(array(
"orange" => array("basketball"),
"white" => array("football")
));
echo $ballcolor->getBall("orange");
echo "
";
echo $ballcolor->getBall("black");
Output:
{"color":"orange","ball":["basketball"]}
{"color":"black","ball":[]}
you should use
function __construct($ballcolor)
instead of
function BallColor($ballcolor)
as you constructor, unless your php version is old.