【问题标题】:Php: need returned variable to be available to all other functions in a class [duplicate]Php:需要返回的变量可用于类中的所有其他函数[重复]
【发布时间】:2017-08-15 16:03:09
【问题描述】:

我有这个模型类,其中有几个函数。在 if 语句设置变量 $new_route 后,我需要获取它以供所有其他函数使用。我最初将它们包含在类的顶部,而不是在函数中,但是 if 语句杀死了它。我可以在每个函数中包含这些代码行,它可以按照我想要的方式工作,但我知道这种方式很糟糕。我将代码包装在一个函数 getRoute() 中,但是如何在类中自动执行该函数,以便变量可用于所有其他函数?

  public function getRoute() {
                 $find_route = $_SERVER['QUERY_STRING'];
             $get_route = explode('&',$find_route);
            $set_route = explode('/',$get_route[0]);
             $new_route = $set_route[1];    
                if ($new_route == 'memberships'){
                    $new_route = "MEMBER";  
                }elseif ($new_route == 'donations'){
                    $new_route = "DONATE";
                }elseif ($new_route == 'tickets'){
                    $new_route = "TICKET";
                }elseif ($new_route == 'items'){
                    $new_route = "ITEM";
                }elseif ($new_route == 'peer'){
                    $new_route = "PEER";
                }elseif ($new_route == 'recurring'){
                    $new_route = "RECURRING";
                }
            return $new_route;
            }   

【问题讨论】:

  • 使其成为类级变量?从函数返回值并使用返回值?在没有看到需要在哪里使用值的情况下,不清楚您应该做什么。但是有几种不同的方法可以传递值。

标签: php


【解决方案1】:

如果您想执行该功能,您将不得不使用另一个文件,例如run.php 或者您可以在类的底部运行该函数,例如:

class your_class {
public function getRoute() {
                 $find_route = $_SERVER['QUERY_STRING'];
             $get_route = explode('&',$find_route);
            $set_route = explode('/',$get_route[0]);
             $new_route = $set_route[1];    
                if ($new_route == 'memberships'){
                    $new_route = "MEMBER";  
                }elseif ($new_route == 'donations'){
                    $new_route = "DONATE";
                }elseif ($new_route == 'tickets'){
                    $new_route = "TICKET";
                }elseif ($new_route == 'items'){
                    $new_route = "ITEM";
                }elseif ($new_route == 'peer'){
                    $new_route = "PEER";
                }elseif ($new_route == 'recurring'){
                    $new_route = "RECURRING";
                }
            return $new_route;
      }   
}
$this->getRoute();

那么输出应该是正确的输出:)

不过,我建议您使用另一个文件,该文件具有所需和使用的类,例如

<?php
   require_once('class.php');
   $class = new class();
   $getRoute = $class->getRoute();
   print_r($getRoute); // For testing the code
?>

【讨论】:

    猜你喜欢
    • 2023-01-27
    • 1970-01-01
    • 2016-06-14
    • 1970-01-01
    • 1970-01-01
    • 2016-07-04
    • 2013-12-08
    • 1970-01-01
    • 2017-02-02
    相关资源
    最近更新 更多