PHP 比較版本 version_compare()

使用情境用於APP在呼叫API時,傳入APP的版本,藉由版本可得知需要進行強制更新進行不同的流程

程式碼使用Laravel的環境 與 php的函式 version_compare()

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
public function versionCheck(string $deviceType, string $appVer, string $osVer) : bool
{
$deviceType = isset($deviceType) ? Str::lower($deviceType) : null;

// iOS 13 以下不進行強更
$OsMiniForceIOS = env('OS_MINI_FORCE_IOS', '13');
if ($deviceType == 'iphone') {
if (version_compare($osVer, $OsMiniForceIOS, '<')) {
return true;
}
}

$miniVer = $this->getDeviceMinVer($deviceType);
if (empty($miniVer)) {
return true;
}

return version_compare($appVer, $miniVer, '>=');
}
1
2
3
4
5
6
7
8
9
10
11
private function getDeviceMinVer(string $deviceType) : string
{
switch ($deviceType) {
case 'iphone':
return env('APP_MINI_VER_IOS', '1.0.0');
case 'android':
return env('APP_MINI_VER_ANDROID', '1.0.0');
}

return '';
}