我对类型提示和命名空间没有太多直观的了解。所以我编写了以下代码来处理这两个概念。我有三个php页面在同一个目录中包含三个类。它们是 -
1.Student.php
2.Institution.php
3.enroll.php。
我想同时使用Student and Institution
类中的enroll
类。我在namespaces
类中应用Student and Institution
。use
在注册类中但是这里的东西不太正确。我收到了这些错误:
警告:非复合名称'Student'的use语句没有 第2行的C:\ xampp \ htdocs \ practice \ typehint \ enroll.php中的效果
警告:非复合名称'Institute'的use语句没有 第3行的C:\ xampp \ htdocs \ practice \ typehint \ enroll.php中的效果
致命错误:未找到班级“学生” 第10行的C:\ xampp \ htdocs \ practice \ typehint \ enroll.php
任何人都可以解释这里有什么问题以及如何解决这个问题?
student.php
namespace Student;
class Student{
public $name;
publci function __construct($value){
$this->name=$value;
}
}
institute.php
namespace Institute;
class Institute{
public $institute;
public function __construct($val){
$this->institute=$val;
}
}
enroll.php
use Student;
use Institute;
class enroll{
public function __construct(Student $student,Institute $institute){
echo $student->name.' enrolled in '.$institute->institute.' school .';
}
}
$student=new Student('zami');
$institute=new Institute('Government Laboratory High School');
$enroll=new enroll($student,$institute);
答案 0 :(得分:1)
您还必须先include
其他文件。否则,PHP不知道在哪里寻找您正在寻找的命名空间。
enroll.php:
<?php
include "student.php";
include "institute.php";
use Student;
use Institute;
class enroll{
public function __construct(Student $student,Institute $institute){
echo $student->name.' enrolled in '.$institute->institute.' school .';
}
}
$student=new Student('zami');
$institute=new Institute('GLAB');
$enroll=new enroll($student,$institute);