-4

これはよくある質問だと思いますが、解決策を見つけることができませんでした。

Web サイト用に単純なオブジェクト指向計算機を作成しようとしています。

基本的に、ユーザーはラグのサイズを入力して、クリーニングのコストを調べます。ここまでで、平方フィートを計算しました。平方フィートは 1 つの関数で計算されます。Rugtype という別の関数で $squarefootage 変数を使用しようとしています。

他の関数で $squarefootage 変数を使用するにはどうすればよいですか? 他のクラスはどうですか?

エラーを含む私の出力は以下の通りです:

The total square footage of your 8' 0'' x 10' 0'' rug is .


Fatal error: Method name must be a string in /home/kokorugs/public_html/instant-quote-new.php on line 44

私の関連コードは以下の通りです:

<?php 
$widthFeet = $_POST["widthFeet"]; 
$widthInches = $_POST["widthInches"];
$lengthFeet = $_POST["lengthFeet"];
$lengthInches = $_POST["lengthInches"];

$rugtype = $_POST["rugtype"];

$enzyme = $_POST["enzyme"];
$sani512 = $_POST["sani512"];
$velodor = $_POST["velodor"];
$q128 = $_POST["q128"];
$preserve = $_POST["preserve"];
$deepclean = $_POST["deepclean"];

$pickup = $_POST["pickup"];

define('BROADLOOM', '1.75');
define('STANDARD_CLEANING', '2.75');
define('SPECIAL_HANDLING', '3.25');
define('DEEP_CLEANING', '5.00');
define('ANTIQUE', '5.00');
define('WOOL_AND_SILK', '5.00');
define('SILK', '10.00');

class Calc {

    public $widthFeet;
    public $widthInches;
    public $lengthFeet;
    public $lengthInches;
    public $squarefootage;
    public $rugtype;

    function getSquareFootage($widthFeet, $widthInches, $lengthFeet, $lengthInches) {

        $squarefootage = ($widthFeet + ($widthInches / 12)) * ($lengthFeet + ($lengthInches / 12));
        echo "The total square footage of your $widthFeet' $widthInches'' x $lengthFeet' $lengthInches'' rug is $sqft.<br><br>";

    }

    function getRugtype($rugtype) {

        $this->$squarefootage($widthFeet, $widthInches, $lengthFeet, $lengthInches);
        $price = $squarefootage * 2.75;
        echo "The cost of cleaning your standard rug type is $price <br><br>.";

    }

}

//Creating object of class
$squarefootage = new Calc();

if ($_POST['submit']){
    $squarefootage->getSquareFootage($widthFeet, $widthInches, $lengthFeet, $lengthInches);
    $squarefootage->getRugtype($rugtype);
}
?>
4

2 に答える 2