同一个类中,一个函数中如何调用另一个函数中的一个变量?两个函数中都对这个参数global了也不行。是不支持这样的调用吗?有没有什么办法?谢谢

解决方案 »

  1.   


    class a{
        private $b;
        public function setB($input){
            $this->b = $input;
        }
        public function getB(){
            return $this->b;
        }}
      

  2.   


    class a{
        private $var;
        public function a($input){
            $this->var = 'this a';
        }
        public function b(){
            return $this->var;
        }}
      

  3.   

    nnd
    一不小心用到了var关键字做变量,不好意啊,
      

  4.   

    如果不public function的话有没有办法做到?
      

  5.   

    #5如何实现呢?
    该如何去声明?我这怎么public、global都不行啊,唉
      

  6.   

    呃想到了,是不是因为我类中的两个函数不是在一个页面中调用的缘故呢?A函数输出form,B函数是form提交后才执行的,是这样是不是用上面的方法也无法得到A函数中变量的值?纠结
      

  7.   

    补充下,虽然该参数可以通过form post再来获取,可是我希望能直接利用,不然的话为了防止恶意伪造数据,在后面还要重新对该参数进行校核如果能直接用的话,安全性就提高很多了。
      

  8.   

    用require()包含另一个你需要的文件。
      

  9.   

    你问题的描述前后不一样啊 
    按你最开始的描述 那么用1L, 除此以外的话 比如用什么session之类的都应该被看作是对面向对象概念的不理解
    按你7L的描述 可以考虑session
      

  10.   

    不好意思,刚开始没有把需求描述清楚,重新完整描述一下:有一个类,里面有两个函数,函数A是用来生成输出一个form表单,函数B是接收表单进行处理其中有一个变量是在函数A中声明并赋值的,现在是想该类中的B函数能直接使用该变量,而不是通过form post过来。这样的话,因为不是一步同时执行两个函数,而是两个函数分别单独执行,B接收表单的时候会重新实例化类了,用1、2楼的方法就无效了。或许只能用session了,只是用session的话还不如直接post了,不想通过post的一大原因就是因为post可以伪造,session同样可以另外说明一点,整个架构执行过程就是这样,是不能更改的,只能是想办法让B函数获得A函数中这个变量的值.
      

  11.   

    对PHP不是很熟悉`MS 在C#中可以的
      

  12.   


    哈~结帖率:123.81% 我也才发现~谢谢以上各位了,由于两个函数是分开独立使用而且每次使用前都重新实例化了,只能得到类变量的初始赋值PHP也是玩不深入,暂时得到这个结论谢谢~如果有解决办法大家再讨论