首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >PHP版本号问题

PHP版本号问题
EN

Stack Overflow用户
提问于 2013-08-31 09:08:39
回答 2查看 36关注 0票数 1

我不知道为什么下面的代码在PHP5.2中给我显示了一个错误消息,但是它在PHP 5.4中运行得很好。

代码语言:javascript
复制
$f_channelList = array();
    $f_channelCounter = 0;
    $f_channel = null;
    foreach ($f_pageContent->find("div.col") as $f_channelSchedule){
        $f_channel = $f_channelSchedule->find("h2.logo")[0];//error here
        if(trim($f_channel->plaintext) != " " && strlen(trim($f_channel->plaintext))>0){
            if($f_channelCounter == 0){
                mkdir($folderName);
            }
            array_push($f_channelList, $f_channel->plaintext);
            $f_fileName = $folderName . "/" . trim($f_channelList[$f_channelCounter]) . ".txt";
            $f_programFile = fopen($f_fileName, "x");
            $f_fileContent = $f_channelSchedule->find("dl")[0]->outertext;
            fwrite($f_programFile, $f_fileContent);
            fclose($f_programFile);
            $f_channelCounter++;
        }
    }

此外,我在代码中使用simple_html_dom.php (html解析器api)来解析html页面。当我在PHP5.2上运行这段代码时,它在"//error“上显示了一条错误消息,这里是” stating “,在第67行”“处解析错误

谢谢

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2013-08-31 09:17:16

你有:

代码语言:javascript
复制
$f_channel = $f_channelSchedule->find("h2.logo")[0]; 
                                                ^^^

数组取消引用是PHP的一个5.4+特性,这也是您获得此错误的原因。如果您想让这段代码用于PHP的早期版本,您必须使用一个临时变量:

代码语言:javascript
复制
$temp = $f_channelSchedule->find("h2.logo");
$f_channel = $temp[0];

有关详细信息,请参阅PHP手册

票数 1
EN

Stack Overflow用户

发布于 2013-08-31 09:17:40

您不能访问像php5.2中那样的函数调用结果。

根据手册

从PHP5.4开始,可以直接对函数或方法调用的结果进行数组取消引用。以前只能使用临时变量。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/18546433

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档