与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行!您能在某个地方发布完整的文件内容吗?其中可能有一个循环引用