PHP将对象声明为函数参数的数组

时间:2018-09-22 13:35:31

标签: php arrays

我对PHP很陌生。我在将对象声明为函数参数数组时遇到问题。在Java中,我仅使用public void methodName (List<Object> listVariableName){}来传递许多对象的列表。

我在PHP上进行了一些研究,其中一个答案建议将array放在方法参数声明中,例如function myFunction($a, array Object $obj){}

当前,我有一个名为Lesson

的类
class Lesson implements JsonSerializable{
private $lessonId;
    private $lessonNo;
    private $lessonTitle;
    private $isLessonActive;
    private $isLessonRemoved;

    //getters and setter here....
}

然后我要声明一个名为addTopicLesson的方法

function addTopicLesson(Topic $topic, array Lesson $lesson){

}

但是,我在array Lesson $lesson中遇到了错误

有1个主题和许多课程。我该如何实现或定义方法签名?

我找到了this,但我想知道是否有比自称为更好的方法。

任何建议,我将不胜感激。

谢谢。

2 个答案:

答案 0 :(得分:1)

<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script> <script src="https://cdnjs.cloudflare.com/ajax/libs/knockout/3.4.2/knockout-min.js"></script> Before:<br> <span id="before"></span> <div data-bind="updateArray: DropdownValues"> </div> <br><br> After:<br> <span data-bind="text: ko.toJSON(DropdownValues)"></span>不是数组。这是一个使用泛型类型机制的列表。

PHP中没有泛型。您只能键入List<T>的提示,但不能在方法声明的级别上控制其中的内容。

答案 1 :(得分:0)

function addTopicLesson(Topic $topic,array $lessons)
{
  foreach($lessons as $lesson) 
  {
    addLesson($page);
  }
}

function addLesson(Lesson $lesson)
{
}