首页 > 解决方案 > 如何使用静态方法运行构造函数

问题描述

当我运行我的脚本时,我看到空白页意味着没有任何价值。请检查我的代码哪里错了,以及为什么会这样。

<?php

    class house{
        public static $size;
        public static $width;

        public static function getsize() {
            return  self::$size;
        }

        public static function getwidth() {
            return  self::$width;
        }

        public function __construct($widthh,$sizee) {
            self::$size=$sizee;
            self::$width=$widthh;   
        }
    }
    $myhousesize = house::getsize('4',' 10');
    echo $myhousesize;
?>

所以,这是我使用构造函数来检查但没有任何作用的代码。这怎么可能?

标签: phpoop

解决方案


您可能误解了 PHP 中 OOP 的一些基本方面。

首先,当您实例化一个新对象时,会调用一个类的构造函数,如下所示:

$house = new house('4','10').

您正在做的是使用两个未使用的参数调用类的静态方法。

其次,不清楚为什么要使用静态字段和方法,因为它们属于类本身而不是单个实例。

你可能想做的是这样的:

class House{
   private $width;
   private $size;

   public function __construct($width,$size){
     $this->width = $width;
     $this->height = $size;
   }

   public function getSize(){
     return $this->size;
   }

   public function getWidth(){
     return $this->width;
   }
}

$house = new House(4,10);
echo $house->getSize();

推荐阅读