与php名称空间混淆

与php名称空间混淆,php,namespaces,Php,Namespaces,我的应用程序中有以下结构: | |----user folder | | | |-----Member.php | | | |---- tests Folder | | | |-----Member.php 这是我在用户文件夹中的Member.php: <?php namespace user; class Member { private $firs

我的应用程序中有以下结构:

|
|----user folder
|        |
|        |-----Member.php
|        | 
|        |---- tests Folder
|                  |
|                  |-----Member.php
这是我在用户文件夹中的
Member.php

<?php

namespace user;

class Member
{
    private $firstName;
    private $lastName;
    private $email;
    private $password;
    private $cell;

    public function __construct()
    {

    }

    public function getFirstName()
    {
        return $this->firstName;
    }

    public function setFirstName($firstName)
    {
        $this->firstName = $firstName;
        return TRUE;
    }

    public function getLastName()
    {
        return $this->lastName;
    }

    public function setLastName($lastName)
    {
        $this->lastName = $lastName;
        return TRUE;
    }

    public function getEmail()
    {
        return $this->email;
    }

    public function setEmail($email)
    {
        $this->email = $email;
        return TRUE;
    }

    public function getPassword()
    {
        return $this->password;
    }

    public function setPassword($password)
    {
        $this->password = $password;
        return TRUE;
    }

    public function getCell()
    {
        return $this->cell;
    }

    public function setCell($cell)
    {
        $this->cell = $cell;
        return TRUE;
    }
}

我的问题是如何使用名称空间调用测试文件夹文件中的成员对象?

您需要包括名称空间和类名:
use user\Member

Member.php:

namespace user;
class Member
{
    private $firstName;
    private $lastName;
    private $email;
    private $password;
    private $cell;
    //and some other stuff
}
namespace user\tests\user;
use user\Member;

$member = new Member();
tests文件夹中的Member.php:

namespace user;
class Member
{
    private $firstName;
    private $lastName;
    private $email;
    private $password;
    private $cell;
    //and some other stuff
}
namespace user\tests\user;
use user\Member;

$member = new Member();
如果没有,我想您还需要将以下内容添加到tests文件夹中的
Member.php

include '../Member.php';
或者,您也可以使用自动加载程序动态加载类/名称空间

PHP自动加载类:

  • 无法导入命名空间(
    导入用户
    )。您需要导入具体的类(
    use user\Member
  • 不需要导入
    成员
    ,因为它位于同一命名空间中
  • use
    语句不包括文件。你必须考虑一下自动装订。考虑和/或
  • 要临时解决您的问题,请使用包括:

    include '../Member.php';
    

    你有吗?--<代码>使用用户\成员
    @Orbling,我尝试过这个,但它给出了相同的错误。你能尝试从测试/成员文件中删除名称空间声明吗?它不起作用,你能提供代码让我清楚地理解吗?比我的答案更好,我已经删除了。现在它说的是致命错误:允许的内存大小134217728字节耗尽(试图分配65488字节)在C:\xampp\htdocs\auto24\user\Member.php的第19行,这是您的代码的一个问题。您还没有向我们显示第19行!您能在某个地方发布完整的文件内容吗?其中可能有一个循环引用