V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
no2x
V2EX  ›  PHP

PHP,我怎么获得 = new Class( 这个参数 ) ?

  •  
  •   no2x · 2012-03-17 17:36:59 +08:00 · 7424 次点击
    这是一个创建于 4664 天前的主题,其中的信息可能已经有所发展或是发生改变。
    假设,我有类:

    class foo{
    public function foofoo(){
    }
    }

    使用时,假设我有变量:

    $Var = 'xxxxxxxxxxxxx';

    $fooVar = new foo( $Var );

    我在 class foo { 里面怎么获得这个传递进来的 $Var } ?

    我见不少程序这么传参数的,可我不知道怎么获得。求教。

    PS:
    $fooVar->foofoo( 这里传参数倒是简单的 );
    13 条回复    1970-01-01 08:00:00 +08:00
    lisztli
        1
    lisztli  
       2012-03-17 17:43:23 +08:00
    self.foo = $var;
    icyflash
        2
    icyflash  
       2012-03-17 17:44:20 +08:00
    构造函数里面添加参数啊

    function __construct($input = '')
    {
    }
    noevil
        3
    noevil  
       2012-03-17 17:45:36 +08:00
    详情请看php class 构造函数。
    楼主没写过php吧。
    dongsheng
        4
    dongsheng  
       2012-03-17 17:47:16 +08:00
    不知道你是不是这个意思:

    <?php
    class foo {
    private $var;
    public function setVar($var) {
    $this->var = $var;
    }
    public function __get($varname) {
    return $this->$varname;
    }
    }

    $v = new foo;
    $v->setVar('test');

    echo $v->var;
    freefcw
        5
    freefcw  
       2012-03-17 17:53:50 +08:00
    可以这样写
    class foo{
    public $var;
    public function __construct($var)
    {
    $this->var = $var;
    }

    public function foofoo()
    {
    return $this->var;
    }
    }

    试了一下反射,似乎不行
    no2x
        6
    no2x  
    OP
       2012-03-17 18:03:53 +08:00
    @freefcw @noevil @icyflash 刚深入学习 class 呢,谢谢。
    icyflash
        7
    icyflash  
       2012-03-17 20:59:11 +08:00
    @no2x 我也不会PHP,不过如果你有OO基础的话,很容易利用搜索引擎找到答案

    “PHP 构造函数 参数”
    anuxs
        8
    anuxs  
       2012-03-17 21:35:32 +08:00
    面向对象编程第一课,构造函数(带参数)。
    sharmy
        9
    sharmy  
       2012-03-19 13:36:17 +08:00
    用构造函数结合func_get_args来完成吧,func_get_args可以获取到你传入函数的参数列表,以数组形式返回.

    大概可以这样:
    class foo{
    public function __construct()
    {
    foreach(func_get_args() as $k=>$p) $this->$k = $p;
    }

    }
    icerunz
        10
    icerunz  
       2012-03-19 14:13:01 +08:00
    __construct()就行了,然后在class中设定一个
    public $variable = $Var;
    iamdbc
        11
    iamdbc  
       2012-03-19 14:29:06 +08:00 via iPad
    lz说的这种情况,一般是在构造函数里传的。类调用外部变量初始化类内部变量
    justfindu
        12
    justfindu  
       2012-03-19 14:31:57 +08:00
    构造函数呗~ 看来还得多学学啊~
    no2x
        13
    no2x  
    OP
       2012-03-19 23:48:37 +08:00
    @sharmy @justfindu @iamdbc @icerunz @anuxs @icyflash

    因為我只是看 PHP 手冊(http://www.php.net/manual/zh/index.php),

    所以不瞭解這些信息,現在我找了面向對象教程看了才完全理解。

    OK~ 謝謝各位。此話題打住。
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   1074 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 22ms · UTC 19:04 · PVG 03:04 · LAX 11:04 · JFK 14:04
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.