我的应用程序中有以下结构:
|
|----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;
}
}
这是我的Member.php在tests文件夹中:
<?php
/*
* Member class getters and setters tests
*/
namespace user;
use user;
$member = new Member();
$member->setFirstName("Javad");
if($member->getFirstName() == "Javad")
echo "Test code 1 passed";
else
echo "Test code 1 failed";
$member = new Member();
$member->setLastName("Akbari");
if($member->getLastName() == "Akbari")
echo "Test code 2 passed";
else
echo "Test code 2 failed";
$member = new Member();
$member->setEmail("j2omrani@gmail.com");
if($member->getEmail() == "j2omrani@gmail.com")
echo "Test code 3 passed";
else
echo "Test code 3 failed";
$member = new Member();
$member->setPassword("123456");
if($member->getPassword() == "123456")
echo "Test code 4 passed";
else
echo "Test code 4 failed";
$member = new Member();
$member->setCell("09121234567");
if($member->getCell() == "09121234567")
echo "Test code 5 passed";
else
echo "Test code 5 failed";
当我想创建一个Object时,它抛出异常并说:
Fatal error: Class 'user\Member' not found in C:\xampp\htdocs\auto24\user\tests\Member.php on line 8
我的问题是如何使用命名空间调用测试文件夹文件中的成员对象?
答案 0 :(得分:8)
答案 1 :(得分:2)
您需要包含命名空间和类名:use user\Member;
<强> Member.php:强>
namespace user;
class Member
{
private $firstName;
private $lastName;
private $email;
private $password;
private $cell;
//and some other stuff
}
测试文件夹中的Member.php:
namespace user\tests\user;
use user\Member;
$member = new Member();
我假设您还需要将以下内容添加到测试文件夹中的Member.php
,如果您还没有:
include '../Member.php';
或者,您也可以使用自动加载器动态加载类/命名空间。
PHP自动加载课程:http://www.php.net/manual/en/function.spl-autoload-register.php