解决方案 »

  1.   

    1)你将B1 方法改成传参不就行了,调用时传default就行了。
    private function B1($key){
      echo $this->$key;
    }2)一般打开错误提示功能就可以了,有什么错误都会报错。
      

  2.   

    版主你好,
    1)这样只能得到键,不能得到和key对应的value值。而且现在我的php项目都没有部署成功,是打印不了数据的。
    2)部署成功我肯定会打开错误提示,现在是没有部署成功,不知道能否提供关于调试从android端post数据到php端的,部署php项目的调试实例。我按照这篇文章试过,不行:http://www.cppblog.com/ljfpudding/archive/2013/12/25/205008.aspx
      

  3.   

    1)为什么只能得到键? 贴出你的代码看看。
    2)没有部署成功是指什么? php环境还没搭配好?
      

  4.   

    function A1{ require_once 'B.class.php'; $uploaddir='...'(里面是上传文件的路径,字符串) $upload = new B(); $upload->set('default‘,$uploaddir); } B:
    {
    private $default_dir = 'upload';
    public function set($key,$value){
    $this->$key = $value;
    }
    public function get($key){
    return $this->$key;
    }
    private function setPath($key){
    $this->default_dir=$this->get($key);
    }
    }改成这样后,执行android发送数据后,直接退出android应用程序,setPath里的$key和set里的$key是指的同一个吗?php项目可以在浏览器中静态访问并调试,但如果想在接收Android端发过来的post数据时调试就不成功。谢谢版主这么热心啊
      

  5.   


    4楼的格式不好,我不能编辑,重新发下A类{ 
         function A1{ require_once 'B.class.php'; 
                $uploaddir='...'(里面是上传文件的路径,字符串);
                $upload = new B();
                $upload->set('default‘,$uploaddir);
                             }
     } 
    B类
    {
    define('DS',DIRECTORY_SEPARATOR);
    private $default_dir = 'upload';
                    public function set($key,$value){
    $this->$key = $value;
                                                       }
                     public function get($key){
    return $this->$key; 
                                                                 }
                     private function setPath($key){
    $this->default_dir=$this->get($key);
                                                                }
                     public function upfile($key){
                                               copy($this->upload_file['tmp_name'],$this->setPath($key).DS.$this->file_name);
                     }
    }
    这样改了,还是无法复制文件到指定的'default_dir'键所对应的路径上,复制到了'default_dir'键所对应路径的根目录上去了。
    php项目可以在浏览器中静态访问并调试,但如果想在接收Android端发过来的post数据时调试就不成功。
      

  6.   

    private function setPath($key){       
       return  $this->default_dir=$this->get($key);
    }为什么要把简单的事情弄复杂呢?
      

  7.   

    谢谢版主的指点,不过我现在不是代码是否复杂简单的问题;我的问题是:通过B类的setPath方法,无法在B类的upfile方法中进行正确的文件复制,总是复制到了A类中'default_dir'键所对应路径的根目录。
      

  8.   

    你的 A类 没有 default_dir 属性
      

  9.   

    抱歉,那是笔误。A类:{
    function A1{ require_once 'B.class.php';             
     $uploaddir='...'(里面是上传文件的路径,字符串);            
     $upload = new B();             
    $upload->set('default_dir',$uploaddir);                         
     } 
    }
      

  10.   


    class A{
        function A1(){
            //require_once 'B.class.php';
            $uploaddir = '...';
            $upload = new B();
            $upload->set('default_dir',$uploaddir);
            $upload->upfile('default_dir');
        }
    }
    define('DS',DIRECTORY_SEPARATOR);
    class B{
        private $default_dir = 'upload';   
        public function set($key,$value){
            $this->$key = $value;
        }    public function get($key){
            return $this->$key; 
        }    private function setPath($key){
            return $this->default_dir=$this->get($key);
        }    public function upfile($key){
            echo $this->setPath($key);
           #copy($this->upload_file['tmp_name'],$this->setPath($key).DS.$this->file_name);
        }
    }$obj = new A();
    $obj->A1();