如何在其他不同的函数中使用相同的变量但具有不同的值?

时间:2014-07-23 16:15:20

标签: php

我需要使用来自给定函数的相同变量,在其他不同的函数中,但是每个函数的部分变量值都不同。

在下面的示例中,我想使用一些图像参数,如“width”,“height”和“alt”,以便在不同函数中使用的每个图像具有不同的参数。这就是我的意思(伪代码):

function my_image_with_parameters() {

    if first_function() { // pseudo if statement
        $width  = '350';
        $height = '165';
        $alt    = 'Some alt';

    } elseif second_function() { // pseudo elseif statement
        $width  = '600';
        $height = '400';
        $alt    = 'Another alt';
    }

    return '<img src="http://someurl.com/image.png" width="' .$width . '" height="' .$height . '" alt="' .$alt . '" />';

}

function first_function() {

    echo my_image_with_parameters();

}

function second_function() {

    echo my_image_with_parameters();

}

3 个答案:

答案 0 :(得分:1)

为什么不尝试这样的事情?

function my_image_with_parameters($size = 'small') {

    if ($size == 'small') { 
        $width  = '350';
        $height = '165';
        $alt    = 'Small image';

    } elseif ($size == 'big') { 
        $width  = '600';
        $height = '400';
        $alt    = 'Big image';
    }

    return '<img src="http://someurl.com/image.png" width="' .$width . '" height="' .$height . '" alt="' .$alt . '" />';

}


echo my_image_with_parameters('small');
echo my_image_with_parameters('big');

答案 1 :(得分:1)

你想:

function my_image_with_parameters($width, $height, $alt)
{
    return '<img src="http://someurl.com/image.png" width="' .$width . '" height="' .$height . '" alt="' .$alt . '" />';
}

my_image_with_parameters(350, 165, 'alt');
my_image_with_parameters(600, 400, 'other alt');

函数可以带参数。调用函数时传递参数。参数可以随每个函数调用而变化。

答案 2 :(得分:1)

这是课程的用途。您可以在类中定义一些变量,然后该类的每个实例在变量中都可以具有不同的值。例如:

class MyClass {
    public $width;
    public $height;
    public $alt;

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

    public function returnImage() {
        return '<img src="http://someurl.com/image.png" width="' .$this->width . '" height="' .$this->height . '" alt="' .$this->alt . '" />';
    }

}

$firstClass = new MyClass('350', '165', 'Some alt');
echo $firstClass->returnImage();
$secondClass = new MyClass('600', '400', 'Another alt');
echo $secondClass->returnImage();