<?php
$dataFormat = array(
"dateTimeOfData" => "DateTime",
"open" => "double",
"high" => "double",
"low" => "double",
"close" => "double",
"volume" => "integer",
"isCritical" => "boolean"//Temporary
);
function validateFormat($data){
global $dataFormat;
//Check that all the required fields exist
$missing = array_diff_key($dataFormat, $data);
$extra = array_diff_key($data, $dataFormat);
if(!empty($missing) || !empty($extra)){
throw new InvalidArgumentException("Incorrect data format provided");
}
//Check that all the data is of the correct type
foreach($data as $k => $v){
$type = gettype($v) === "object" ? get_class($v) : gettype($v);
$correctType = $dataFormat[$k];
if($type !== $correctType){
throw new InvalidArgumentException("Data is of an incorrect type.");
}
}
}
$arr = array("dateTimeOfData" => new DateTime(),
//"open" => 10.1,
"high" => 10.1,
"low" => 10.1,
"close" => 10.1,
"volume" => 10,
"isCritical" => true);
validateFormat($arr);
preferences:
50.95 ms | 402 KiB | 5 Q