У меня есть этот код в PHP:Изменение значения переменной только внутри функции
class PhpClass {
private static $name = 'Test name';
private static $access = 'Test access';
public static function checkData($param=NULL) {
if ($param) {
self::$name = $param['name'];
self::$access = $param['access'];
}
//Rest of the function
}
}
Таким образом, в основном то, что мне нужно будет держать вар $name
и $access
всегда иметь каждый раз значение по умолчанию я называю функцию checkData()
, но только изменяя его значение в этой функции при передаче параметров.
Например, если вызвать функцию так:
function functionToCheckData() {
$class = new PhpClass();
$param = [
'name' => 'Another name',
'access' => 'Another access'
];
$class->checkData($param); //$name and $access should be "another name" and "another access"
$class->checkData(); //$name and $access should be "test name" and "test access"
}
Everytime я вызываю функцию checkData()
Я хочу переменные имеют значение по умолчанию. Можно ли достичь?
Я попробовал это, и он возвращает эту ошибку: 'Использование $ это, когда не в объекте context'. Кроме того, необходимо ли использовать часть 'else'? Кажется излишним переопределить значение, которое уже является значением по умолчанию. Это то, чего я пытался избежать. – celsomtrindade
Я только что протестировал его, он отлично работает. Убедитесь, что вы скопировали его правильно. Вы должны сказать, что использовать, если '$ param' не установлен. Если вы хотите, чтобы изменения были временными, тогда объявляйте '$ name' и' $ access' в качестве локальных переменных в 'checkData'. – zed