如何在不使用php中的函数的情况下将变量从一个类传递给另一个类?

发布时间:2022-04-30 发布网站:脚本宝典
脚本宝典收集整理的这篇文章主要介绍了如何在不使用php中的函数的情况下将变量从一个类传递给另一个类?脚本宝典觉得挺不错的,现在分享给大家,也给大家做个参考。
我有daoHistorial.PHP

<?PHP

require "transferDao/daoTransferHistorial.PHP";

require "bdconnection.PHP";


    class daoHistorial{

            public function sqlSelect($tarea){

                    $aObjects=array();


                    $dbconn = new DBconnection();
                    $db = $dbconn->bdConnection();
                    $stmt = $db->prepare("SELECT t1.tar_id,t1.rea_seccion,t1.rea_porcentaje,t1.rea_descripcion,t1.hrs_tarea,t1.tar_fechtermino 
                                          FROM act_registtarea t1
                                          inner join act_tarea t2
                                          ON t1.tar_id = t2.tar_id 
                                          where t2.tar_nombre = '$tarea'");
                    $stmt->execute();
                    $stmt->setFetchMode(PDO::FETCH_ASSOC);
                    $result = $stmt->fetchAll();

                    foreach ($result as $row) {
                            $aTransfer = new daoTransferHistorial();
                            $aTransfer->setPorcentaje($row['rea_porcentaje']);
                            $aTransfer->setDescripcion($row['rea_descripcion']);
                            $aTransfer->setFechaTermino($row['tar_fechtermino']);
                            $aTransfer->setSeccion($row['rea_seccion']);
                            $aTransfer->setHora($row['hrs_tarea']);

                            $aObjects[]=$aTransfer;
                    }

                    print_r($aObjects);
                    return $aObjects;
            }   
    }
?>

我有controllerHistorial.PHP

<?PHP

require "dao/daoHistorial.PHP";  

class HistorialTareas {

    public function getHistorial() {

        $aTransfer = new daoHistorial();

        foreach($aTransfer->sqlSelect() as $sKey=>$oValue){    
            $list[] = array('porcentaje' => $oValue->getPorcentaje(),'descripcion' => $oValue->getDescripcion(),'fecha_termino' => $oValue->getFechaTermino(),'seccion' =>$oValue->getSeccion(),'hora' =>$oValue->getHora()
                            );
        }
        print_r($list);
        return $list;
    }
}

?>

这里:foreach($aTransfer-> sqlSelect()as $sKey => $oValue){我有一个问题,因为缺少参数

我需要使用`daoHistorial.PHP中的sqlSelect($tarea).

我知道我需要在公共函数getHistorial($tarea)中传递参数

但我需要这个:

public function getHistorial() {
$aTransfer = new daoHistorial();
foreach($aTransfer->sqlSelect($tarea) as $sKey=>$oValue){

因为在我需要getHistorial()之后没有参数.

解决方法

将相关文件更新为以下内容

daoHistorial.PHP

<?PHP
require "transferDao/daoTransferHistorial.PHP";
require "bdconnection.PHP";

class daoHistorial{
    public $tarea = NULL;

    public function setTarea($val) {
        $this->tarea = $val;
    }

    public function sqlSelect() {
        $aObjects=array();

        $dbconn = new DBconnection();
        $db = $dbconn->bdConnection();

        $incStatement = ($this->tarea != NULL) ? "where t2.tar_nombre = '.$this->tarea.'":"";

        $stmt = $db->prepare("SELECT t1.tar_id,t1.tar_fechtermino 
                                          FROM act_registtarea t1
                                          inner join act_tarea t2
                                          ON t1.tar_id = t2.tar_id 
                                          ".$incStatement);
        $stmt->execute();
        $stmt->setFetchMode(PDO::FETCH_ASSOC);
        $result = $stmt->fetchAll();

        foreach ($result as $row) {
                            $aTransfer = new daoTransferHistorial();
                            $aTransfer->setPorcentaje($row['rea_porcentaje']);
                            $aTransfer->setDescripcion($row['rea_descripcion']);
                            $aTransfer->setFechaTermino($row['tar_fechtermino']);
                            $aTransfer->setSeccion($row['rea_seccion']);
                            $aTransfer->setHora($row['hrs_tarea']);

                            $aObjects[]=$aTransfer;
         }

         print_r($aObjects);
         return $aObjects;
    }   
}
?>

controllerHistorial.PHP

<?PHP
require "dao/daoHistorial.PHP";  

class HistorialTareas extends daoHistorial {

    public function getHistorial() {

        foreach($this->sqlSelect() as $sKey=>$oValue){    
            $list[] = array('porcentaje' => $oValue->getPorcentaje(),'hora' =>$oValue->getHora()
                            );
        }
        print_r($list);
        return $list;
    }
}
?>

现在访问HistorialTareas时,您可以执行此操作

<?PHP
$historial = new HistorialTareas;
$getData = $historial->getHistorial();

对于正常结果,或过滤

<?PHP
$historial = new HistorialTareas;
$historial->setTarea('VALUE HERE');
$getData = $historial->getHistorial();

脚本宝典总结

以上是脚本宝典为你收集整理的如何在不使用php中的函数的情况下将变量从一个类传递给另一个类?全部内容,希望文章能够帮你解决如何在不使用php中的函数的情况下将变量从一个类传递给另一个类?所遇到的问题。

如果觉得脚本宝典网站内容还不错,欢迎将脚本宝典推荐好友。

本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。
标签: