我对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,但我想知道是否有比自称为更好的方法。
任何建议,我将不胜感激。
谢谢。
答案 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)
{
}