【问题标题】:PHP function & classesPHP 函数和类
【发布时间】:2011-06-29 08:37:34
【问题描述】:

也许这对大多数人来说很容易。 但有时在一段代码中我会看到这样的内容:

public function myFunction(Class_Name $var){
  //some nice code here
}

我的问题是,这些参数是做什么的,我为什么要使用它? :)

【问题讨论】:

    标签: php class function


    【解决方案1】:

    Class_Name 部分是type hint$var 参数必须是该类的实例(无论是new Class_Name() 还是派生自它的任何类的实例)。如果您希望$var 是某种对象,而不是任意的 PHP 值,则可以使用它。不过,类型提示仅原生存在于类/接口类型和数组中。

    【讨论】:

    • 数组也存在类型提示。
    【解决方案2】:

    这意味着传递给 myFunction 的变量必须是 Class_Name 的实例。这样就可以避免在 myFunction 的主体中检查变量的类型,或者在确定该方法存在的情况下调用 $var 的方法。

    【讨论】:

      【解决方案3】:

      参数用于您(或其他人)在函数/方法中使用它。

      public function myFunction(Class_Name $var){
        //some nice code here
        echo $var->someProperty;
      }
      

      如果您要问,Class_Name 是关于什么的:这是类型提示。这意味着,每当您尝试将类 Class_Name (或子类)的对象以外的任何对象设置为 agument 时,php 都会发出错误。

      【讨论】:

        【解决方案4】:

        这称为typehinting,它确保$var 变量是Class_Name 的实例,或者是扩展Class_Name 的类。这只是一个断言,真的。

        【讨论】:

          【解决方案5】:

          如果你想从函数返回一些结果,则必须定义函数参数。 class_name 就像 (int,float ...etc ) 不一定要定义,$var 可以是任何名称你想要你的变量

          【讨论】:

            猜你喜欢
            • 2011-04-25
            • 1970-01-01
            • 2013-07-03
            • 2011-05-15
            • 2013-05-28
            • 1970-01-01
            • 2011-07-28
            • 2013-10-02
            • 1970-01-01
            相关资源
            最近更新 更多