I have been working on a color palette system where a multidimensional array holds different color palettes. EX:
$palette['1']['borderColor'] = "black";
$palette['2']['borderColor'] = "white";
I have a function that should return a color palette item when called but for some reason it's not returning anything. Instead it says "Undefined variable: palette"EX:
$palette['1'] = array(
"borderColor"=> "#222222",
"divColor1"=> "#00f2ff",
"divColor2"=> "#222222",
"headerColor"=> "rgba(38, 38, 38, 0.5)",
"color1"=> "#00f2ff",
"color2"=> "#e9ffdd"
);
function getItem($number, $item) {
return $palette[$number][$item];
}
$borderColor = getItem('1', 'borderColor');
echo "borderColor is> " . $borderColor . " <.";
//returns "borderColor is> <."
Any suggestions?
The function you wrote does not have the actual palette value.. Just pass the palette you want into the function.
$palette['1'] = array(
"borderColor"=> "#222222",
"divColor1"=> "#00f2ff",
"divColor2"=> "#222222",
"headerColor"=> "rgba(38, 38, 38, 0.5)",
"color1"=> "#00f2ff",
"color2"=> "#e9ffdd"
);
function getItem($palette, $number, $item) {
return $palette[$number][$item];
}
$borderColor = getItem($palette,'1', 'borderColor');
echo "borderColor is> " . $borderColor . " <.";
Another way to do this would be to make a simple class in which you could call your palettes.
class Palette {
public function __construct($palette){
$this->borderColor = $palette['borderColor'];
$this->divColor1 = $palette['divColor1'];
$this->divColor2 = $palette['divColor2'];
$this->headerColor = $palette['headerColor'];
$this->color1 = $palette['color1'];
$this->color2 = $palette['color2'];
}
}
$palette['1'] = array(
"borderColor"=> "#222222",
"divColor1"=> "#00f2ff",
"divColor2"=> "#222222",
"headerColor"=> "rgba(38, 38, 38, 0.5)",
"color1"=> "#00f2ff",
"color2"=> "#e9ffdd"
);
$black = new Palette($palette['1']);
$white = new Palette($palette['2']);
echo $black->borderColor;
echo $white->borderColor;