當前位置:才華齋>計算機>php語言>

詳解php中空字串和0之間的關係

php語言 閱讀(2.46W)

近期因工作需要,在處理關於經緯度的問題建表的時候,因為欄位發現了一些問題,所以這篇文字就來深入探討下php中空字串和0之間的關係,感興趣的朋友們可以通過下面這篇文字來詳細的看看,相信會對大家學習或只用php具有一定的參考借鑑價值。

詳解php中空字串和0之間的關係

$_x=$row["x"];

$_y=$row["y"];

if(isset($_x) && isset($_y)){

if($row["y"] == 0 || $row["x"] == 0){

$d=$this->getDistance($row["y"],$row["x"],$y,$x);

}elseif(!empty($row["y"]) && !empty($row["x"])){

$d=$this->getDistance($row["y"],$row["x"],$y,$x);

}else{

continue;

}

if($d < $radius){

$list[]= $data[$key];

}

}

其實我是想要 過濾掉 經緯度為空的資料,保留經度或緯度為0的資料,但發現在列印列表資料時,總是包含 經緯度為空的資料。

研究了好久,才發現經緯度欄位是字元型別,當欄位為空時進行$row['y']== 0判斷時,PHP進行自動轉換,所以$row['y']== 0判斷在空字元的'情況下是正確的。於是總是包含經緯度為空的資料。那麼怎麼去掉經緯度為空的資料呢?

其實很簡單如下:

if(isset($_x) && isset($_y)){

if($row["y"] == "0" || $row["x"] == "0"){

$d=$this->getDistance($row["y"],$row["x"],$y,$x);

立即過濾掉經緯度為空的資料。

下面是對preg_replace_callback進行程式碼講解

$str="sdjfksdf2345";

$str=preg_replace_callback ( '/d{4}/', function ($match){

return $match[0]."ff";

}, $str );

echo $str;

exit;

程式碼執行結果為:sdjfksdf2345ff

該函式就是將正則匹配的結果作為匿名函式的引數,返回的結果作為替換的結果。

總結:以上就是這篇文章的全部內容了,希望本文的內容對大家的學習或者工作能帶來一定的幫助。