将变量传递给静态函数

时间:2015-01-08 15:06:21

标签: php

我有一些PHP可以提取数据库中的所有人员记录。

我现在想要添加一个子句,因此它可以SELECT * WHERE companyId = x

我正在使用GET来检索要使用的companyId

我的问题是,如何将$ companyClause传递给静态函数?

function viewStaffInCompany(){

    $results = array();
    $companyClause = $_GET["companyClause"];
    echo $companyClause . "<br><hr>";

    $data = Staff::getCompanyStaffList();
    $results['staff'] = $data['results'];
    $results['totalRows'] = $data['totalRows'];

    require( "templates/viewStaff.php" );

};

getCompanyStaffList();

public static function getCompanyStaffList( $numRows=1000000, $order="id ASC", $companyClause) {
    $conn = new PDO( DB_DSN, DB_USERNAME, DB_PASSWORD );

    $sql = "SELECT SQL_CALC_FOUND_ROWS * FROM Staff WHERE $companyClause ORDER BY " . $order . " LIMIT :numRows";

    $st = $conn->prepare( $sql );
    $st->bindValue( ":numRows", $numRows, PDO::PARAM_INT );
    $st->execute();
    $list = array();

    while ( $row = $st->fetch() ) {
      $users = new Staff( $row );
      $list[] = $users;
    }

    // Now get the total number of staff that matched the criteria
    $sql = "SELECT FOUND_ROWS() AS totalRows";
    $totalRows = $conn->query( $sql )->fetch();
    $conn = null;
    return ( array ( "results" => $list, "totalRows" => $totalRows[0] ) );
  }

1 个答案:

答案 0 :(得分:3)

仅作为参数。

Staff::getCompanyStaffList(1000000, "id ASC", $companyClause);

但是我会重构这个参数列表,因为$companyClause是必需的,所以,你需要总是传递前2个参数,如果没有给出,则默认值是什么。

所以它应该是:

public static function getCompanyStaffList($companyClause, $numRows=1000000, $order="id ASC") {