php - 在函数上请求数组项
问题描述
如果我想从开始到第一个 (,) 提取一个字符串,这样做是安全的做法吗?
$day = explode(',',"Thursday, April 5th, 4:00pm")[0];
而不是做
$dayArray = explode(',',"Thursday, April 5th, 4:00pm");
$day = $dayArray[0];
我知道我也可以使用strpos
with来做到这一点substr
,而且我知道我可以使用 来做到这一点preg_match
,我的问题是[0]
直接从函数中请求一个孩子是否可靠。
解决方案
引用自 php.net
如果 delimiter 是空字符串 (""),explode() 将返回 FALSE。如果 delimiter 包含 string 中不包含的值,并且使用了负限制,则返回一个空数组,否则返回一个包含 string 的数组。
这意味着:如果您需要绝对确定此代码有效,则应防止传递的空字符串爆炸或检查结果是否为假。否则,您可以尝试访问不存在的索引。
您是否考虑改用 DateTime::createFromFormat ?这是否有意义,取决于您的要求
短版本是否正常工作取决于您使用的 PHP 版本(如前所述)。
推荐阅读
- c# - 异步 POST 方法 C#'':并非所有代码路径都返回值
- html - 双头表中的引导程序居中
- javascript - jQuery insertAfter 之后隐藏显示不起作用
- c++ - 4 [main] open mchess 8784 cygwin_exception::open_stackdumpfile: 将堆栈跟踪转储到 mchess.exe.stackdumpfile
- hibernate - org.apache.aries.jpa:org.apache.aries.jpa.blueprint:2.3.0 - 无法运行
- google-sheets - 谷歌表格 - 函数在 FormulaArray 中不独立工作
- php - 使用 PHP 从数据库动态生成 xml
- php - $wpdb->get_row() 没有结果
- r - 将仪表板呈现为 htmlOutput
- c# - Xamarin Forms:将 2 个属性绑定到另一个