#php
#php
Вопрос:
Я не знаю, как предопределить одну из переменных в функции.
<?php
$number = 3;
function test($num, $num2 = $number) {
$result = "num = ".$num." and num2 = ".$num2;
return $result;
}
echo test(1);
?>
Он всегда выводит:
Неустранимая ошибка: константное выражение содержит недопустимые операции в C:xampphtdocsphpindex.php в строке 3
Ответ №1:
Лучше использовать это так:
function test($num, $num2 = 3) {/**/}
Но, если вам это действительно нужно, вы можете определить константу:
const NUMBER = 3;
function test($num, $num2 = NUMBER)
{
$result = "num = $num and num2 = $num2";
return $result;
}
echo test(1); // returns "num = 1 and num2 = 3"
И вариант 3d, если вы хотите использовать какую-либо динамическую переменную:
$number = 3;
function test($num, $num2)
{
$result = "num = $num and num2 = $num2";
return $result;
}
echo test(1, $number); // returns "num = 1 and num2 = 3"
Или вы можете использовать класс:
class Test
{
protected $number;
public function __construct($number)
{
$this->number = $number;
}
public function test($num)
{
$result = "num = $num and num2 = $this->number";
return $result;
}
}
$test = new Test(3);
echo $test->test(1); // returns "num = 1 and num2 = 3"
Ответ №2:
Если вы хотите присвоить параметру значение по умолчанию, вы должны использовать значение (постоянное выражение), а не var (переменное выражение)
function test($num, $num2 = 3 )
Комментарии:
1. хорошо, но я хотел бы использовать var или что-то в этом роде. Возможно ли это?
2. почему ?? .. когда вам нужно, вы можете передать содержимое var. в вызове функции `test($num, $number) .. Таким образом, вы хотите присвоить значение параметра по умолчанию в качестве выражения переменной вместо постоянного выражения..