【问题标题】:PHP explode on string throws NULL object when accessing the array [closed]访问数组时,PHP在字符串上爆炸抛出NULL对象[关闭]
【发布时间】:2019-08-14 13:34:31
【问题描述】:

我正在尝试为视频播放时间分解字符串。我的代码是:

$viedeolaenge = $file['playtime_string']; // $videolaenge is now string 00:06
var_dump($viedeolaenge); // string(4) "0:06"
$minuten_sekunden = explode(":",$videolaenge);
var_dump($minuten_sekunden); // array(1) { [0]=> string(0) "" }

我尝试通过

访问数组
    $minuten_sekunden[0] -> returns string(0) ""
    and 
    $minuten_sekunden[1] -> returns NULL

现在想知道为什么这不起作用... 当我用分隔符“:”分解字符串并且我的字符串是“00:06”时,然后

$minuten_sekunden[0] 应该返回“00”

$minuten_sekunden[1] 应该返回“06”

至少在我的逻辑中......我错过了什么?

【问题讨论】:

  • $viedeolaenge”...?你并没有认真地打错这个,是吗?
  • 哇...我很抱歉,已经晚了...
  • 您应该收到未定义变量的通知。除非您关闭了错误。
  • 如果您还没有这样做,请为自己准备一个具有语法和拼写检查功能的 IDE。例如,Net bean 会警告您变量 $viedeolaenge 未初始化,因此在这种情况下指向一个错字。
  • 而且你不是在生产服务器上实时开发,riiiiiiiight?!

标签: php string null explode


【解决方案1】:

好的,OP只需要打开错误显示,即打开error_reporting。然后他们会看到变量拼写错误,因此会出现关于未定义变量的通知。

注意:未定义变量:第 5 行 /in/emNVQ 中的 videolaenge

如果你更正了变量的拼写,那么你会得到想要的结果:

<?php

$videolaenge = "00:06";
var_dump($videolaenge); // string(4) "0:06"
$minuten_sekunden = explode(":",$videolaenge);
var_dump($minuten_sekunden); // array(1) { [0]=> string(0) "" }

直播代码here

注意:这并不是真正的拼写正确,而是一致的拼写。所以,我只是让所有三个变量引用都具有通知中指示的拼写。

【讨论】:

  • 感谢您的回答@slevy1,如上所述,这是一个错字。虽然错误报告只是记录在服务器端文件中,但我错过了检查日志中的错字变量。也许我会为服务器记录的每个通知/错误设置一个电子邮件警报,所以我以后不会错过这类错误:)
  • @KerimYagmurcu 不客气 :) 另外,你可能想看看这个:php.net/manual/en/function.error-get-last.php
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2012-12-13
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多