我在我的代碼,這樣一行:可選參數PHP列表功能
list($user_id, $name, $limit, $remaining, $reset) = explode('|', $user);
最後3個參數可能會或可能不會存在。是否有一個類似於列表的函數,如果數組小於預期,它將自動忽略最後一個參數?
我在我的代碼,這樣一行:可選參數PHP列表功能
list($user_id, $name, $limit, $remaining, $reset) = explode('|', $user);
最後3個參數可能會或可能不會存在。是否有一個類似於列表的函數,如果數組小於預期,它將自動忽略最後一個參數?
只是一些備用的管道添加到字符串的結尾:
list($user_id, $name, $limit, $remaining, $reset) = explode('|', $user.'||||');
問題就迎刃而解了。
注意:如果您要加載任意管道分隔的數據,則可能需要使用str_getcsv()
函數而不是explode()
。
http://stackoverflow.com/a/15365504/851643似乎是一個更好的解決方案 – Alexcode 2016-07-19 17:26:29
list(...) = array_pad(explode('|', $user), 5, null);
如果您擔心SDC的解決方案感覺「哈克」那麼你可以設置一些默認值並使用:
$user = '3|username';
$defaults = array(NULL, NULL, 10, 5, FALSE);
list($user_id, $name, $limit, $remaining, $reset) = explode('|', $user) + $defaults;
var_dump($user_id, $name, $limit, $remaining, $reset);
'list'不是函數。 – 2013-03-12 15:33:24
「不分配任何東西」或「分配空值」意義上的「忽略」? – 2013-03-12 15:35:17
你不應該想要這個。當您在範圍內通過名稱定義變量時,應始終創建該變量。空變量應該發生什麼?他們是否應該創建?這會弄亂下面的代碼... – deceze 2013-03-12 15:35:50