【发布时间】:2011-06-29 08:37:34
【问题描述】:
也许这对大多数人来说很容易。 但有时在一段代码中我会看到这样的内容:
public function myFunction(Class_Name $var){
//some nice code here
}
我的问题是,这些参数是做什么的,我为什么要使用它? :)
【问题讨论】:
也许这对大多数人来说很容易。 但有时在一段代码中我会看到这样的内容:
public function myFunction(Class_Name $var){
//some nice code here
}
我的问题是,这些参数是做什么的,我为什么要使用它? :)
【问题讨论】:
Class_Name 部分是type hint。 $var 参数必须是该类的实例(无论是new Class_Name() 还是派生自它的任何类的实例)。如果您希望$var 是某种对象,而不是任意的 PHP 值,则可以使用它。不过,类型提示仅原生存在于类/接口类型和数组中。
【讨论】:
这意味着传递给 myFunction 的变量必须是 Class_Name 的实例。这样就可以避免在 myFunction 的主体中检查变量的类型,或者在确定该方法存在的情况下调用 $var 的方法。
【讨论】:
参数用于您(或其他人)在函数/方法中使用它。
public function myFunction(Class_Name $var){
//some nice code here
echo $var->someProperty;
}
如果您要问,Class_Name 是关于什么的:这是类型提示。这意味着,每当您尝试将类 Class_Name (或子类)的对象以外的任何对象设置为 agument 时,php 都会发出错误。
【讨论】:
这称为typehinting,它确保$var 变量是Class_Name 的实例,或者是扩展Class_Name 的类。这只是一个断言,真的。
【讨论】:
如果你想从函数返回一些结果,则必须定义函数参数。 class_name 就像 (int,float ...etc ) 不一定要定义,$var 可以是任何名称你想要你的变量
【讨论】: