我正在尝试构建一个类文件。我从这个基本的执行代码开始,它运行良好:
此处的代码是从给定中心点lon和lat以及半径100英里或160.934公里计算最小和最大经度和纬度。
$lat = 32.373591; //Location latitude
$lon = -88.743598; //Location longitude
$r = (160.934/6371); //Radius distance in Km
$latMin = $lat - $r; //Calculate the minmum latitude
$latMax = $lat + $r; //Calculate the maximum latitude
$latT = asin(sin($lat)/cos($r)); //don't know what this calculation is for
//$lonTri = arccos((cos($r)-sin($latT)*sin($lat))/(cos($latT)*cos($lat));
$lonTri = asin(sin($r)/cos($lat));
$lonMin = $lon - $lonTri;
$lonMax = $lon + $lonTri; //Calculate the Min and Max Longitude
echo $lat . " Latitude<br><br>";
echo $lon . " Longitude <br><br>";
echo $r . " r <br><br>";
echo $latMin . " Latitude Min<br><br>";
echo $latMax . " Latitude Max<br><br>";
echo $latT . " Latititude Total <br><br>";
echo $lonTri . " lonTri <br><br>";
echo $lonMin . " Lon Min<br><br>";
echo $lonMax . " Lon Max<br>";
我想将它转换为PHP中的类文件。我不确定我的工作,我想确保课程能够正确地重现计算。我的类文件看起来像这样
class nextCityCal {
//Location latitude
public $lat;
//Location longitude
public $lon;
//Radius distance in Km
public $r = 0.0252603986815257;
//Calculate the minmum latitude
public $latMin = $lat - $r;
//Calculate the maximum latitude
public $latMax = $lat + $r;
//don't know what this calculation is for
public $latT = asin(sin($lat)/cos($r));
public $lonTri = asin(sin($r)/cos($lat));
//Calculate the Min and Max Longitude
$lonMin = $lon - $lonTri;
$lonMax = $lon + $lonTri;
//set the latitude to the value pulled from the database
public function setLat($lat){
$this->lat = $lat;
}
//rerurn the latitude for processing
public function getLat(){
return $this->lat;
}
//set the longitude to the valuse pulled from database
public function setLon($lon){
$this->lon = $lon;
}
//Calculate the minimum latitude
public function calLat($lat, $r){
if(!$lat){
$this->calLat = $lat - $r;
return $this->calLat;
}
}
}
我的问题是关于
$latMin = $lat - $r;
在进行中的代码中,它是直接数学。 在类文件中,我将其转换为
//Calculate the minimum latitude
public function calLat($lat, $r){
if(!$lat){
$this->calLat = $lat - $r;
return $this->calLat;
}
}
这会返回我想要的计算结果吗?如果没有我怎么去添加类文件中的变量?
答案 0 :(得分:0)
最好保持范围不超过其所需的使用范围,以提高可读性和资源管理。如果您没有在课堂外设置或阅读它们,则可以使用私有或受保护的属性(变量)。您可以像使用独立函数一样在方法中使用locals。您还可以使用构造函数方法(__construct)初始化属性而不是将其作为声明 - 因此您将有一个位置可以查看所有初始化。