我需要帮助理解对象的类型提示。我尝试在stackoverflow上搜索,但没有找到其他用户解释其用法的内容。如果您找到了,请告诉我。
首先,让我解释一下我所理解的内容。
当使用数组类型提示时,用户必须键入一个参数,该参数是一个数组,否则它将抛出错误。
<?php
function something(array $myval)
{
return print_r($myval);
}
当我尝试使用一个对象时,会出现错误。我可能写错了,但请帮助我理解如何正确编写。
<?php
class Person
{
function name($name)
{
return $name;
}
}
$foo = new Person();
function doSomething(Person $lname)
{
return $lname->name;
}
doSomething('smith');
据我所理解,在函数中将参数变量指定为对象Person(在本例中)的类型提示时,参数变量将可以访问对象的方法,就像实例化一个对象并回显其方法时一样。我可能是错的,请纠正我。我的另一个问题是,如果这是正确的,即Person参数可以访问Person方法,那么有什么区别可以和手动实例化Person类并手动回显方法的操作有所不同呢?
'smith'
是一个字符串而不是一个对象。你必须将$foo
传递给doSomething()
才能使其正常工作。 - Jean Paul