-5

我有班上的人

前任:

class People{
   function name($name){
      echo "the name".$name;
   }
}

如何在无需调用方法的情况下自动创建类调用函数:

$var=new People ()

请给我答案?

4

5 回答 5

1

你可以通过使用构造函数来做你想做的事。在 php 中,这是通过在名为 __construct() 的类中声明一个方法来完成的。构造函数在对象创建时运行。所以在你的例子中

<?php
class People{
     public function __construct($name)
     {
         name($name);
     }
     function name($name){
        echo "the name".$name;
     }
}
$var = new People("dave");

您可能指的另一件事是静态,但您确实调用了一个方法,您只是不实例化该类的实例

  <?php

class People{
     static function name($name){
        echo "the name".$name;
     }
}
People::name("Dave"); 

这将输出“nameDave”

于 2013-05-17T10:47:59.017 回答
1

添加构造函数

function __construct() {
   $this->name("My name");
}

虽然这没有多大意义,但这是你要求的:-)

于 2013-05-17T10:46:56.060 回答
1

每次创建实例构造函数时,您只需在类中显式添加它即可。例如:

class People{

    public function __construct() {
        echo 'constructing';
    }

   function name($name){
      echo "the name".$name;
   }
}

但在开始做实际的事情之前,我建议阅读: http: //php.net/manual/en/language.oop5.php

编辑:从您的评论看来,您想静态调用方法。如果您想在不实例化的情况下调用方法,则应将函数标记为static. 在您的示例中:

public static function name($name){
  echo "the name".$name;
}

和用法:

Person::name('my name');
于 2013-05-17T10:46:34.217 回答
0

您正在寻找构造函数。

class Bla {
 public function __construct() { // runs when class is instantiated
 }
}
于 2013-05-17T10:46:17.757 回答
0

测试这个:

class Family {

    private $myself;
    private $mother = '';
    private $father = '';

    public function __construct($myname) {
        $this->myself = $myname;
    }

    public function printFamily() {
        print_r($this);
    }

    public function setFather($name) {
        $this->father = $name;
    }

    public function setMother($name) {
        $this->mother = $name;
    }

}


$fam = new Family('George Walker Bush');

$fam->setFather('George Herbert Walker Bush');
$fam->setMother('Barbara Pierce Bush');

$fam->printFamily();
于 2013-05-17T10:55:17.427 回答