php使用explode分割字符串新手容易忽略的问题
1.explode方法说明
explode方法可以使一个字符串按某一个字符串作为边界点来分割成数组。
array explode ( string $delimiter , string $string [, int $limit ] )1
登入後複製
返回由字符串组成的数组,每个元素都是string的一个子串,被字符串delimiter作为边界点分割出来。
参数说明:
delimiter
边界上的分隔字符。
string
输入的字符串
limit
如果设置了limit参数并且是正数,则返回的数组最多包含limit个元素,而最后那个元素将包含string的剩余部分。
如果limit参数是负数,则返回除了最后的-limit个元素外的所有元素。
如果limit是0,则会被当做1。
2.例子
使用,分割字符串
<?php$str = '1,2,3,4,5,6,7,8,9';$arr = explode(',', $str);echo '<pre class="brush:php;toolbar:false">';print_r($arr);echo '
登入後複製
输出:
Array( [0] => 1 [1] => 2 [2] => 3 [3] => 4 [4] => 5 [5] => 6 [6] => 7 [7] => 8 [8] => 9)123456789101112
登入後複製
使用,分割字符串,limit为正数
<?php$str = '1,2,3,4,5,6,7,8,9';$arr = explode(',', $str, 5);echo '<pre class="brush:php;toolbar:false">';print_r($arr);echo '
登入後複製
输出:
Array( [0] => 1 [1] => 2 [2] => 3 [3] => 4 [4] => 5,6,7,8,9)12345678
登入後複製
使用,分割字符串,limit为负数
<?php$str = '1,2,3,4,5,6,7,8,9';$arr = explode(',', $str, -3);echo '<pre class="brush:php;toolbar:false">';print_r($arr);echo '
登入後複製
输出:
Array( [0] => 1 [1] => 2 [2] => 3 [3] => 4 [4] => 5 [5] => 6)123456789
登入後複製
使用,分割字符串,limit为0
<?php$str = '1,2,3,4,5,6,7,8,9';$arr = explode(',', $str,0);echo '<pre class="brush:php;toolbar:false">';print_r($arr);echo '
登入後複製
输出:
Array( [0] => 1,2,3,4,5,6,7,8,9)1234
登入後複製
3.容易忽略的问题
一般我们会使用explode来分割id字符串之类的数据
<?php$ids = '1,2,3,4';$data = explode(',', $ids);if($data){ foreach($data as $k=>$v){ // do sth }}?>123456789
登入後複製
正常情况下ids不为空,看代码也不会发现什么问题,因为有判断if(data);一般会认为已经做了空的处理。
但实际情况却是ids=null, data却不是空,会导致foreach里执行的代码出问题。
<?php$ids = null;$data = explode(',', $ids);if($data){ print_r($data);}else{ echo 'null';}?>123456789
登入後複製
因为ids=null,使用explode分割,得出的数组是Array ( [0] => )而不是Array()。
所以判断需要修改一下才能避免问题发生
<?php$ids = null;$data = explode(',', $ids);if(isset($data[0]) && $data[0]){ foreach($data as $k=>$v){ // do sth }}?>
登入後複製
本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn

熱AI工具

Undresser.AI Undress
人工智慧驅動的應用程序,用於創建逼真的裸體照片

AI Clothes Remover
用於從照片中去除衣服的線上人工智慧工具。

Undress AI Tool
免費脫衣圖片

Clothoff.io
AI脫衣器

AI Hentai Generator
免費產生 AI 無盡。

熱門文章
R.E.P.O.能量晶體解釋及其做什麼(黃色晶體)
2 週前
By 尊渡假赌尊渡假赌尊渡假赌
倉庫:如何復興隊友
4 週前
By 尊渡假赌尊渡假赌尊渡假赌
Hello Kitty Island冒險:如何獲得巨型種子
3 週前
By 尊渡假赌尊渡假赌尊渡假赌
擊敗分裂小說需要多長時間?
3 週前
By DDD
R.E.P.O.保存文件位置:在哪里以及如何保護它?
3 週前
By DDD

熱工具

記事本++7.3.1
好用且免費的程式碼編輯器

SublimeText3漢化版
中文版,非常好用

禪工作室 13.0.1
強大的PHP整合開發環境

Dreamweaver CS6
視覺化網頁開發工具

SublimeText3 Mac版
神級程式碼編輯軟體(SublimeText3)