Met*_*hew 5 php variables numbers
我在PHP工作,我必须按顺序定义变量以保存在Mysql中.在我的情况下,字段名称和变量名称必须相同.
我可以声明这样的变量吗?
$1 OR $2 etc
Run Code Online (Sandbox Code Playgroud)
如果不是为什么不,如果是,为什么是?
我试过了:
$id = 0;
$6 = $_REQUEST['6'];
$7 = $_REQUEST['7'];
$8 = $_REQUEST['8'];
$xary = array('6','7','8','9')
$oAppl->save_record("tablename", $id, "id");
Run Code Online (Sandbox Code Playgroud)
这给了我错误.
我也可以在Mysql中创建和使用具有相同名称的字段吗?
Rob*_*ess 15
这就是PHP的设计方式.您无法使用数字启动变量名称.
你可以做的是使用下划线:
$_6 = $_REQUEST['6'];
Run Code Online (Sandbox Code Playgroud)
编辑: 因为变量以PHP中的$开头,所以可能有变量以数字开头,但这对大多数人来说有点混乱,因为没有其他语言允许变量以数字开头(或者至少我不知道)我知道任何).
但是让我们假设允许以数字开头的变量.
你能想象一个同事对你说:23等于74?这有点令人困惑.听力n23等于74更有意义.你知道n23是一个变量而不必明确地说出来.
是的,您可以在PHP中声明以数字开头的变量:
${'1'} = 'hello';
Run Code Online (Sandbox Code Playgroud)
这"1"在PHP中声明了变量名称的变量.
要访问它,您需要再次使用大括号语法:
echo ${'1'};
Run Code Online (Sandbox Code Playgroud)
这是必要的,因为在PHP代码中,你不能写:
echo $1;
Run Code Online (Sandbox Code Playgroud)
这会产生语法错误.
我也可以在Mysql中创建和使用具有相同名称的字段吗?
是的,你可以,它的工作方式与PHP类似.在Mysql中你也需要引用该列的仅数字标识符,引用不同:
mysql> create table test (`0` INT);
mysql> describe test;
+-------+---------+------+-----+---------+-------+
| Field | Type | Null | Key | Default | Extra |
+-------+---------+------+-----+---------+-------+
| 0 | int(11) | YES | | NULL | |
+-------+---------+------+-----+---------+-------+
Run Code Online (Sandbox Code Playgroud)
这里使用了反引号(默认的Mysql配置).PHP手册和Mysql手册都解释了这个细节,在Stackoverflow网站上引用PHP和Mysql的标识符也有许多相关的问题.