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 OOP语法_Php_Oop - Fatal编程技术网

从类方法调用变量的简单PHP OOP语法

从类方法调用变量的简单PHP OOP语法,php,oop,Php,Oop,我主要是一名设计师,对PHP中的OOP没有太多经验,所以请客气一点,因为我的术语可能并不精确。这是我最需要帮助的PHP/OOP语法,我在这里和Google上搜索了好几次解决方案,因为我认为这是一个非常直截了当的问题,但没有找到任何帮助 我正在尝试创建一个类方法,该方法使用客户的帐户ID从数据库中提取客户帐户数据。我想提取大约20个变量,并可以访问我网站上的各个页面 这是我的类文件(classfile.php): 以下是我的一个页面(index.php): 首先,除非我注释掉最后一行,否则脚本将终

我主要是一名设计师,对PHP中的OOP没有太多经验,所以请客气一点,因为我的术语可能并不精确。这是我最需要帮助的PHP/OOP语法,我在这里和Google上搜索了好几次解决方案,因为我认为这是一个非常直截了当的问题,但没有找到任何帮助

我正在尝试创建一个类方法,该方法使用客户的帐户ID从数据库中提取客户帐户数据。我想提取大约20个变量,并可以访问我网站上的各个页面

这是我的类文件(classfile.php):

以下是我的一个页面(index.php):

首先,除非我注释掉最后一行,否则脚本将终止,因此我的语法肯定有问题。但我真正需要知道的是如何调用并将城市或任何其他变量放入我的页面?我不知道正确的语法。我无法想象它会是$object->getAccount($acctId)->$city。我知道那是错的。我如何从这个对象中调用城市或任何其他变量

另外,我知道我应该使用另一种方法连接到我的数据库,一旦我首先弄明白了这一点,我就会这样做

提前感谢您提供的任何帮助

Jason这是不正确的

$this->$firstName = $row["firstName"];
       ^---remove the $
应该是

$this->firstName = $row['firstName'];
后续行也是如此

  • 正如其他人提到的,您应该使用
    $this->firstName
    而不是
    $this->$firstName
  • $this
    指的是对象,而不是方法
  • 它可以在没有显式初始化的情况下工作,但为了更好地将所有对象字段定义为public(或private/protected和write-getter方法),您应该定义:

    类别帐户{

    public $firstName;
    public $lastName
    ...
    
    }

  • 使用3中定义的变量,您应该能够使用
    $object->firstName

  • 您可能应该考虑将类分成两个帐户(作为DB代理)和帐户(作为单个帐户数据)和帐户-> GETActk,您将创建帐户对象并返回它——但这更多的是一个架构讨论。
    不要包含在方法中,也不要初始化那里的连接。不要使用
    mysql.*
    。另一方面,访问对象属性$firstName的方式应该是:
    $this->firstName
    ,但首先应该在类中初始化它,即
    类帐户{public$firstName;public$lastName;//……public函数getAccount(…
    谢谢你的建议。有趣的是,实际上没有人回答我的问题。我问的是调用方法变量的语法。当然,我的mysql查询不正确,但这不是我的问题。不幸的是,Stack不允许我发布整个工作副本,因为我是新的,但我会尝试并记住关于调用方法变量,下面是我需要的:$client=$object->getAccount($acctId);echo$client['firstName'];这很有效!
    $this->firstName = $row['firstName'];
    
    public $firstName;
    public $lastName
    ...