dongshui9690 2013-11-06 16:06
浏览 22
已采纳

PHP调用其他类的方法

In my php project I've create 4 classes

CONNECTION

class Mysqliconn {

   public $mysqli;  

   public function __construct(){
      include "dbconfig.php";
      $this->connect($host, $user, $password, $database, $charset);
   }

   public function connect (.....)
      $this->mysqli = new mysqli(......);
   }
}

UPLOAD

class Upload {

     private $db;

     public function __construct( Mysqliconn $db ) {
        $this->db = $db; 
     }

     public function getID($id) {
        echo $id;
     }
}

USERS

class Users {

 private $db;

      public function __construct( Mysqliconn $db ) {
          $this->db = $db; 
      }

      public function getName($name) {
      echo $name;
      }
}

CARS

class Cars {

     private $db;

     public function __construct( Mysqliconn $db ) {
            $this->db = $db; 
     }

     public function getCars($cars) {
        echo $cars;
     }
 }

In my php page I instantiate the classes in this way

function __autoload($class_name) {
    if(file_exists('class/class.' . strtolower($class_name) . '.php')) {
        require_once('class/class.' . strtolower($class_name) . '.php'); 
    }
    else {
        throw new Exception("Unable to load $class_name.");
    }
}

$db = new Mysqliconn();
$up = new Upload($db);
$us = new Users($db);
$cs = new Cars($db);

$cs->getCars('BMW');
$us->getName('Foo');

In my Cars Class I'd like to call method of classes Users and Upload. Is it possibile to do? How could I do this? Thanks.

  • 写回答

2条回答 默认 最新

  • dtcaw02086 2013-11-06 16:17
    关注

    You can call a public static function inside an other class:

    class Users {
    
    private $db;
    
      public function __construct( Mysqliconn $db ) {
          $this->db = $db; 
      }
    
      public static function getName($name) {
      echo $name;
      }
    }
    
    
    class Cars {
     private $db;
    
     public function __construct( Mysqliconn $db ) {
            $this->db = $db; 
     }
    
     public function getCars($cars) {
        echo $cars;
     }
    
        public function callGetName($name)
       {
             return  Users:: getName($name) ;
       }
    }
    

    Another option would be:

    function callGetName($name)
     {
       $user = new Users();
       $user->getName($name);
     }
    
    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
查看更多回答(1条)

报告相同问题?

悬赏问题

  • ¥100 set_link_state
  • ¥15 虚幻5 UE美术毛发渲染
  • ¥15 CVRP 图论 物流运输优化
  • ¥15 Tableau online 嵌入ppt失败
  • ¥100 支付宝网页转账系统不识别账号
  • ¥15 基于单片机的靶位控制系统
  • ¥15 真我手机蓝牙传输进度消息被关闭了,怎么打开?(关键词-消息通知)
  • ¥15 装 pytorch 的时候出了好多问题,遇到这种情况怎么处理?
  • ¥20 IOS游览器某宝手机网页版自动立即购买JavaScript脚本
  • ¥15 手机接入宽带网线,如何释放宽带全部速度