web-dev-qa-db-ja.com

PHP文字列を返す関数

私はPHPにかなり慣れていません。価格のコストをチェックする機能があります。この関数から変数を返してグローバルに使用したい:

<?
function getDeliveryPrice($qew){
    if ($qew=="1"){
        $deliveryPrice="60";
    } else {
        $deliveryPrice="20";
    }
    return $deliveryPrice;                          
}
// Assuming these two next lines are on external pages..
getDeliveryPrice(12);
echo $deliveryPrice; // It should return 20

?>
9
TheBlackBenzKid

戻り値を変数に格納するだけです。

$deliveryPrice = getDeliveryPrice(12);
echo $deliveryPrice; // will print 20

上記の$deliveryPrice変数は、関数内の$deliveryPriceとは異なる変数です。後者は 変数スコープ のため、関数の外には表示されません。

14
Jon
<?
function getDeliveryPrice($qew){
    if ($qew=="1"){
        $deliveryPrice="60";
    } else {
        $deliveryPrice="20";
    }
    return $deliveryPrice;                          
}

$price = getDeliveryPrice(12);
echo $price;

?>
3
Bgi
<?php
function getDeliveryPrice($qew){
   global $deliveryPrice;
    if ($qew=="1"){
        $deliveryPrice="60";
    } else {
        $deliveryPrice="20";
    }
    //return $deliveryPrice;                          
}
// Assuming these two next lines are on external pages..
getDeliveryPrice(12);
echo $deliveryPrice; // It should return 20

?>

一部のアラディが言ったように、このためにクラスを使用してみてください。

class myClass
{
    private $delivery_price;

    public function setDeliveryPrice($qew = 0)
    {
        if ($qew == "1") {
            $this->delivery_price = "60";
        } else {
            $this->delivery_price = "20";
        }
    }

    public function getDeliveryPrice()
    {
        return $this->delivery_price;
    }
}

これを使用するには、クラスを初期化し、必要なことを実行するだけです。

$myClass = new myClass();
$myClass->setDeliveryPrice(1);

echo $myClass->getDeliveryPrice();
2
Peon