Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/oop/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
获取php对象方法学_Php_Oop_Object - Fatal编程技术网

获取php对象方法学

获取php对象方法学,php,oop,object,Php,Oop,Object,我想知道什么是处理获取对象的更好方法 (一) (二) 使用第二个时有什么大问题吗 注意这是一个高度简化的示例:-) 编辑:这不是我真正的问题。也没有使用神奇的setter/getter(这是不好的imho)。但是,我想知道在将objectgetter放在类之外/内部是否存在一些缺陷。因此,我可以将其命名为$User=GetUserInfo(1)或$User=newuser()$用户->获取用户信息(1)可见性 属性或方法的可见性可以通过在声明前面加上关键字public、protected或pri

我想知道什么是处理获取对象的更好方法

(一)

(二)

使用第二个时有什么大问题吗

注意这是一个高度简化的示例:-)


编辑:这不是我真正的问题。也没有使用神奇的setter/getter(这是不好的imho)。但是,我想知道在将objectgetter放在类之外/内部是否存在一些缺陷。因此,我可以将其命名为$User=GetUserInfo(1)或$User=newuser()$用户->获取用户信息(1)

可见性

属性或方法的可见性可以通过在声明前面加上关键字public、protected或private来定义。声明为公共的类成员可以在任何地方访问。声明为受保护的成员只能在类本身内以及由继承类和父类访问。声明为私有的成员只能由定义该成员的类访问

属性可见性

类属性必须定义为public、private或protected。如果使用var声明,则该属性将定义为public


您可以使用以下解决方案中给出的任何方法。为私有变量创建Getter和Setter方法,或在构造函数中传递值,以便在实例化时初始化值

一,

一,


可以使用PHP
\uuuuu get
\uuuu set
魔术方法。第二种方法..您不能在类之外访问类的私有变量…使用第二种方法创建setter和getter方法hi,这不是我真正的问题。也没有使用神奇的setter/getter(这是不好的imho)。但是,我想知道将对象getter放在类的外部/内部是否有缺陷。因此,我可以将其命名为$User=GetUserInfo(1)或$User=newuser()$用户->获取用户信息(1)
class UserInfo{
  private $UserName;
  private $UserID;
  }

function GetUserInfo($UserID){
  $User = new User();
  // something
  $User->UserName = "Arnold";
  return $User;
  }
class UserInfo{
  private $UserName;
  private $UserID;

  public function GetUserInfo($UserID){
    // something
    $this->UserName = "Arnold";
    }
  }
class UserInfo{
    private $UserName;
    private $UserID;

    public function _setUserName($UserName){
        $this->UserName = $username;
    }

    public function _getUserName(){
        return $this->UserName;
    }

    public function _setUserId($UserID){
        $this->UserId = $UserID;
    }

    public function _getUserId(){
        return $this->UserId;
    }
}

$user = new UserInfo();
$user->_setUserName("Username Passed Here");
$user->_setUserID("UserId Passed here");
echo $user->_getUserName." ".$user->_getUserID;

or You can use constructor to set values at time of Object Instantiation like given below
 class UserInfo{
    private $UserName;
    private $UserID;

    function __construct($UserName, $UserId){
         $this->UserName = $username;
         $this->UserId = $UserID;
    }

    public function _getUserName(){
        return $this->UserName;
    }

    public function _getUserId(){
        return $this->UserId;
    }
}

$user = new UserInfo("Username Passed Here", "UserID Passed Here");
echo $user->_getUserName." ".$user->_getUserID;