无论如何要使变量受保护并且不能覆盖到 php ?
ps:不在课堂或定义中。
例如;
<?php
$var ="something";
$var ="test";
echo $var;
?>
我希望这段代码返回“某物”而不是“测试”。
你对此有什么想法吗?
从技术上讲,您可以使用辅助函数和global
(yuck) 关键字,但 classes/define
更好(但您仍然必须使用函数并将所有$var = "something"
行更改为set_var("something")
):
<?php
set_var("something");
set_var("test");
var_dump($var); //string(9) "something"
function set_var($newVar) {
static $varIsSet;
global $var;
if (!$varIsSet) {
$var = $newVar;
$varIsSet = true;
}
}
?>
变量的全部目的是它的值是可变的,它可以在程序的后期更改。
我可以用什么代替?
但是你可以使用一个常量:
// Works on PHP 5.3.0 and later
const SOME_CONSTANT = "Some value.";
或者
// Far more well known, works on older PHPs, does the same thing
define("SOME_CONSTANT", "Some value");
如何使用常量?
然后像使用变量一样使用它:
echo SOME_CONSTANT;
您几乎可以以任何可以使用变量的方式使用常量,只是传统上您会为常量使用大写名称(这在 PHP 中不强制)并且它不会以$
符号开头(这是强制执行)...哦,当然,您不能重新分配它。
注意:因为使用关键字定义的常量const
是在编译时定义的,所以您不能在循环结构、if
语句、switch
语句等中使用此语法,而必须使用此语法define()
。
您可以使用函数来模拟该行为:
function var() {
return "something";
}
但是,如果您不想改变“变量”,请使用常量。