0

私はオブジェクト指向PHPの概念(www.killerphp.comのチュートリアルに従う)に不慣れであり、すべてのphpアプリケーションをOOPHPに移行することを計画しています。メソッド「setSecurity()」によって設定された「where」条件
のオブジェクトプロパティに基づいてデータベースから認証レベルを読み取る最初のクラスの構築を開始しました。

配列「getSecurity()」を返すことができましたが、出力を出力すると次のようになります。

security Object
(
    [secArray] => Array
        (
            [from_date1] => 1992-01-01
            [to_date1] => 0000-00-00
            [from_date2] => 1992-01-01
            [to_date2] => 0000-00-00
            [view] => 1
            [insert] => 0
            [update] => 1
            [delete] => 1
            [valid] => 1
        )

)
/*"Array 1"*/

私の問題は、通常の配列(以下)の出力に慣れていないことです。

Array
(
    [from_date1] => 1992-01-01
    [to_date1] => 0000-00-00
    [from_date2] => 1992-01-01
    [to_date2] => 0000-00-00
    [view] => 1
    [insert] => 0
    [update] => 1
    [delete] => 1
    [valid] => 1
)
/*"Array 2"*/

私の質問は次のとおりです:1)getSecurity()メソッド(配列1から)から配列の要素にアクセスするにはどうすればよいですか?
2)配列を正しく返すようにメソッドを取得するにはどうすればよいですか(配列2と同じ)?

以下にあるコードスニペット。

応援ありがとうございました...

'test.php'

<?php
include("connect.php");  
include("security.php");
$secArray=new security();
$secArray->setSecurity('test_user',1,1,1,$link);
$secArray->getSecurity();
echo "<pre>"; print_r($secArray); echo "</pre>";
?>

'security.php'

<?php
class security
{
    public $secArray = array();

    function setSecurity($user,$appid,$funid,$objid,$conn='')
    {
        $query="SELECT lu.DATE1 as from_date1,
                    lu.DATE2 as to_date1,
                    ga.DATE1 as from_date2,
                    ga.DATE2 as to_date2,
                    ga.VIEW as view,
                    ga.INSERT as insert,
                    ga.UPDATE as update,
                    ga.DELETE as delete,
                    ob.VALID as valid
                FROM
                    user as lu
                    inner join group as ug on lu.GRP_ID = ug.ID
                    inner join privileges as ga on lu.GRP_ID = ga.GRP_ID
                    and ug.ID = ga.GRP_ID
                    inner join level1 as ob on ob.APP_ID = ga.APP_ID
                    and ob.FUN_ID = ga.FUN_ID
                    and ob.ID = ga.OBJ_ID
                where
                    USERID = '$user'
                and ga.APP_ID = $appid
                and ga.FUN_ID = $funid
                and ga.OBJ_ID = $objid";
        $result = mysql_query($query,$conn);
        $row = mysql_fetch_assoc($result);
        $this->secArray=$row;
    }

    function getSecurity()
    {
        return $this->secArray;
    }     
}
?>
4

1 に答える 1

0

ゲッターは値を返すので、返された値$secArray->getSecurity();で何かをしない限り、呼び出しは実際には役に立ちません。$mySecurity=$secArray->getSecurity(); use $mySecurity...

配列とオブジェクトへのアクセスに関するPHPのドキュメントをお読みください。

于 2012-05-07T14:31:17.127 に答える