PHP OOP访问条件语句中的变量

时间:2016-02-17 14:17:45

标签: php oop

对象/ myClass.php

class myClass
{
    public $curID;

    function get_next_id($type)
    {
        if($type == '1')
        {
            $this->enquiryID = "CAT" . $row['nextEnquiryID'];
            $this->curID = $this->enquiryID;
        }
        elseif($type == '2')
        {
            $this->enquiryID = "GE" . $row['nextEnquiryID'];
            $this->curID = $this->enquiryID;
        }
        elseif($type == '3')
        {
            $this->enquiryID = $row['nextEnquiryID'];
            $this->curID = $this->enquiryID;
        }
    }
}

我试图在另一个文件中更改时访问curID的新值。

的index.php

所以我尝试这样做:

<?php
    include_once("objects/myClass.php");
    echo ($myClass->curID);
?>

但是我根本看不到任何输出。条件语句将基于以下内容给出不同的类型:

<select class="form-control" name="enquiryType" id="enquiryType">
                <option value="1">Enquiry 1</option>
                <option value="2">Enquiry 2</option>
                <option value="3">Enquiry 3</option>
            </select>

因此,每次条件更改时,我都需要使用该语句更新curID,然后将其发送到目前为止回显它,以便我可以对index.php进行其他处理

我怎样才能做到这一点?

修改

我试着更彻底地解释一下。我有Select with选项(在index.php上)然后这些输入到我的类,然后根据选择的内容我检查enquiryType 1 2或3并转到数据库以获取该类型的最后一个enquiryID并追加无论是“GE”还是“CAT”,都没有。然后我将curID设置为新ID的任何内容。因此,如果最后一个id是GE1,它将找出它是什么enquiryType,例如说“GE”并将它附加到它所以它的“GE2”然后将curID设置为GE2然后我希望能够重新获得该值index.php,现在就回声一下吧。如果最初的问题不明确的话,希望这会让人更加抱歉。

3 个答案:

答案 0 :(得分:1)

下面:

<?php
    include_once("objects/myClass.php");
    echo ($myClass->curID);
?>

应该是:

<?php
    include_once("objects/myClass.php");
    $myClass = new myClass();
    echo ($myClass->curID);
?>

编辑: 根据您的评论,您的类似乎希望至少有一个参数传递到构造中:

<?php
    include_once("objects/myClass.php");
    $someParameter = 'some data';

    $myClass = new myClass($someParameter);
    echo ($myClass->curID);
?>

如果没有看到完整的类,很难确定__construct()函数的期望值。

编辑:

我决定填写一些缺失的数据,这是一个简单的例子:

<?php 
// objects/myClass.php
class myClass
{

    // $enquiryID was missing in your class
    public $enquiryID;
    public $curID;

    function get_next_id($type)
    {
        // This array was missing as well, so here it's been faked
        $row = array('nextEnquiryID'=>1);


        if ($type=='1')
        {
            $this->enquiryID = "CAT".$row['nextEnquiryID'];
            $this->curID = $this->enquiryID;

        }
        else if ($type=='2')
        {
            $this->enquiryID = "GE".$row['nextEnquiryID'];
            $this->curID = $this->enquiryID;
        }
        else if ($type=='3')
        {
            $this->enquiryID = $row['nextEnquiryID'];
            $this->curID = $this->enquiryID;

        }

    }

另一个文件:

<?php
include_once("object/myClass.php");
$someParameter = 'some data';

$myClass = new myClass($someParameter);

// Call get_next_id(), passing in the $type 
$myClass->get_next_id(1);

// Now that get_next_id() has been called, we can load the value of $myClass->curID
echo $myClass->curID;

答案 1 :(得分:0)

仔细查看objects / myClass.php还有一个额外的}找到

答案 2 :(得分:0)

您在课堂上的语法错误,因为在公共$ curID之后关闭课程,请将此括号放在最后。 Class是一个模板(对象的工厂),你必须先定义一个这个类的实例,然后才能获得它的属性,如$ object = new myClass(); $ property = $ object-&gt; curID;你可以通过在类中创建一个接受参数的方法并将其赋值给curID属性来更改此属性。如果你有问题,就问吧。希望我能正确理解这个问题,不好意思,如果没有。