这是PHP系列教程的第二部分。在这一集里,我们将看一下编写变量的基本规则。
本页只是一个快速概述。如果你想了解所有功能的详细技术描述,我已经写了一篇独立的文章。
PHP中的变量以美元符号$
开头,后面紧跟名称。
$zvire = '猫';
字符串(字符序列)用引号或撇号括起来。
$a = "引号";$b = '撇号';
数字不包括在引号内。
$a = 5;$b = 10;$c = 3.14159;
变量名称只能由英文字母和数字组成。名字总是以一个字母开头。
如果名字由一个以上的词组成,习惯上使用camelCase
语法(第一个字母小写,其他每个词都以大写字母开始)。
$kocka = '姬蒂';$rychlyPocitac = '当然是我的!';$pocetRohuJednorozce = 1;
该名称不得包含空格、破折号、钩号、逗号、引号、括号或其他特殊字符。唯一允许的特殊字符是 "下划线"。
小数的数字应以句号书写。
$pi = 3.14159;
在定义一个变量时,直接进行数学运算往往会很有用。
$a = 5;$b = 3;$c = $a + $b; // 加入5+3echo $c; //打印出8
引号和撇号不得任意组合。例如,如果我们决定使用引号,我们也必须用引号结束字符串,而不是在里面使用。
因此,这是不对的。
echo "<img src="/FileUpload/Features/2/Photo/2179.jpg"obrazek.gif">";
因为不清楚这个链条的起点和终点。引号和撇号不能嵌套。
一个可能的解决方案被称为escaping,其中有问题的字符前面有一个反斜杠。
echo "<img src="image.gif">";
反斜杠表示下一个字符将正是我们要使用的字符。
然而,对于输出HTML代码来说,最好是用撇号括住整个字符串,然后以正常方式使用引号。
echo '<img src="image.gif">';
另外,它也可以被逆转。
echo "<img src='picture.gif'>";
含有问号的地址带有关于输入变量的信息,因此,例如index.php?page=contacts
表示变量page
,其值为contacts
。这个变量的值被读取为$_GET['page']
。
问号字符与磁盘上的文件名没有任何关系。它始终是我们在地址中传递参数的那个文件。
我在关于发送数据的方法的文章中详细讨论了这个问题。
有些变量在脚本运行时是可用的(因此可以直接使用),这些变量被称为superglobal变量。例如,如果我们想从一个URL读取一个值,我们使用$_GET
变量。
其用法如下。
$a = $_GET['a'];echo $a;
这个脚本将问号后的URL中的内容打印到源代码中。
警告,这个样本并不安全!如果一个流氓访客在URL中传递,例如HTML代码,它将被插入到页面中并执行。因此,我们必须始终处理输出;
htmlspecialchars()
函数用于此。
$a = $_GET['a'];echo htmlspecialchars($a);
如果我们访问页面时没有指定
?a=anything
参数,$_GET['a']
变量将不存在,PHP将抛出一个错误信息。我们需要用一个条件来对待这个条件,如果变量不存在就不做任何事情(或者说,输出替代内容)。 变量的存在可以用isset()
函数来验证。
if (isset($_GET['a'])) {$a = $_GET['a'];echo htmlspecialchars($a);} else {echo '变量 "a "并不存在!';}
有了来自URL地址的变量,我们可以做狗件,例如,把它们加起来,直接写出结果。
echo $_GET['a'] + $_GET['b'];
如果我们想在URL中包含更多的输入参数,我们必须用安培号(&
)来分隔它们。该地址可以是这样的:index.php?a=5&b=3
。
我们也可以很容易地链接2个文本输入(字符串)。这是用点运算符完成的。你可以在变量中或在列表时进行链接。
$a = '犬';$b = '猫';echo $a . 'a' . $b;
它说 "狗和猫"。
Jan Barášek Více o autorovi
Autor článku pracuje jako seniorní vývojář a software architekt v Praze. Navrhuje a spravuje velké webové aplikace, které znáte a používáte. Od roku 2009 nabral bohaté zkušenosti, které tímto webem předává dál.
Rád vám pomůžu:
Články píše Jan Barášek © 2009-2024 | Kontakt | Mapa webu
Status | Aktualizováno: ... | zh