为什么我无法使用PHP访问类内的函数

时间:2018-11-13 00:28:43

标签: php function class

在类内部调用函数时发生错误。

错误消息:

Parse error: syntax error, unexpected '$arquivo' (T_VARIABLE), expecting function (T_FUNCTION) or const (T_CONST) in C:\xampp\htdocs\sequencial\function_sintegra.php on line 20

我在这里提供我的代码:

<?php

function explode_txt(){

    $arquivo = $_SESSION['nomeArquivo'];
    $conteudo = file_get_contents($arquivo);
    $linhas = explode("\n", $conteudo);
}

class Sintegra{

    private $emissor;
    private $cnpj;
    private $inscricao;
    private $municipio;
    private $estado;
    private $dataInicial;
    private $dataFinal;

    $arquivo = explode_txt(); //Arquivo Sintegra em array nesta variavel, por linhas.

    $emissor = (string)substr($arquivo[0], 30, 35);
    $inscricao = (string)substr($arquivo[0], 16, 14);
    $cnpj = (string)substr($arquivo[0], 2, 14);

}

?>

我使用该功能有什么问题吗? 我尝试浏览,但是找不到任何解决方案。 谢谢您的帮助。

1 个答案:

答案 0 :(得分:0)

您需要在类方法中调用外部函数。

您可以这样:

class Sintegra{

    private $emissor;
    private $cnpj;
    private $inscricao;
    private $municipio;
    private $estado;
    private $dataInicial;
    private $dataFinal;

    public function __construct() {
        $arquivo = explode_txt();

        $this->emissor = (string)substr($arquivo[0], 30, 35);
        $this->inscricao = (string)substr($arquivo[0], 16, 14);
        $this->cnpj = (string)substr($arquivo[0], 2, 14);
    }
}

更新 这是最好的方法。