是否可以使用php关键字'使用'在Php功能里面?

时间:2018-06-06 13:01:42

标签: php php-7

是否可以使用php关键字'使用'在Php函数内部与下面的代码相同?如果我正在使用'请使用'关键字它工作正常,但我想在函数内使用此关键字。请问我该怎么做?

<?php
public function exportSales()  {
    require 'vendor/autoload.php';
    use PhpOffice\PhpSpreadsheet\Spreadsheet;
    use PhpOffice\PhpSpreadsheet\Writer\Xlsx;

    $spreadsheet = new Spreadsheet();
    $sheet = $spreadsheet->getActiveSheet();
    $sheet->setCellValue('A1', 'Hello World !');

    header('Content-Type: application/vnd.openxmlformats- officedocument.spreadsheetml.sheet');
  header('Content-Disposition: attachment;filename="myfile.xlsx"');
  header('Cache-Control: max-age=0');

  $writer = new Xlsx($spreadsheet);
  ob_end_clean(); 
  $writer->save('php://output');
}
?>

2 个答案:

答案 0 :(得分:0)

在函数内使用use关键字无效。它会给出语法错误。因为它导入指定的命名空间,所以它应该在命名空间之后添加。

  

层次:

Namespaces
Use Statements
Class Declaration {
    Function Declarations {
        // code
    }
}

详细信息Visit here

答案 1 :(得分:0)

这不是一种有效的做法。您的代码结构应为:

  • 名称空间声明
  • 使用陈述
  • 班级定义
  • 功能定义

就像:

namespace foo

Use bar/abc
Use bar/xyz

class foo {
    //class definition
    function bar(){
        //function definition
    }
}

您应该查看Import docs

修改

名称空间的示例:

使用方法export创建自己的命名空间及其中的类,如:

<?php

    namespace myModule

    use PhpOffice\PhpSpreadsheet\Spreadsheet;
    use PhpOffice\PhpSpreadsheet\Writer\Xlsx;

    class export {
        function exportSales(){
            //function definition
        }
    }
?>

然后,您将能够在其他代码中使用该类,使用命名空间如下:

<?php

    use myModule\{export}

    function otherFunc(){
        $export = new export()
        $export->exportSales()
    }

?>