只是打印出 hello world
确定是不够的,是吗?你会但愿作得比这还要多——你想要输入一些内容,操纵它,而后从中获得一些输出出来的内容。咱们能够在 PHP 中经过使用变量与常量来实现这一目标,在本章中咱们还会学习其它的一些概念。php
当解析一个文件时,PHP 会寻找起始和结束标记,也就是 <?php
和 ?>
,这告诉 PHP 开始和中止解析两者之间的代码。此种解析方式使得 PHP 能够被嵌入到各类不一样的文档中去,而任何起始和结束标记以外的部分都会被 PHP 解析器忽略。程序员
若是文件内容是纯 PHP 代码,最好在文件末尾删除 PHP 结束标记。这能够避免在 PHP 结束标记以后万一意外加入了空格或者换行符,会致使 PHP 开始输出这些空白,而脚本中此时并没有输出的意图。shell
PHP 支持 C,C++ 和 Unix Shell 风格(Perl 风格)的注释。例如:编程
<?php echo "This is a test"; // 这是 C++ 风格的单行注释 /* 这是一个 多行注释 */ echo "This is yet another test"; echo 'One Final Test'; # 这是 shell 风格的单行注释
注释主要用做写给程序读者看的笔记。数组
C 风格的注释在碰到第一个 */
时结束。要确保不要嵌套 C 风格的注释。试图注释掉一大块代码时很容易出现该错误。编程语言
<?php /* echo "This is a test"; /* 这个注释将要引发问题 */ */
你应该在你的程序中尽量多地使用有用的注释:编辑器
代码会告诉你怎么作,注释会告诉你为什么如此。学习
这样作对你的程序的读者来讲很是有用,他们能够很容易地理解你的程序是作什么的。请记住,这我的能够是六个月后的你!优化
常量是一个简单值的标识符(名字)。如同其名称所暗示的,在脚本执行期间该值不能改变。常量默认为大小写敏感。传统上常量标识符老是大写的。this
常量名和其它任何 PHP 标签遵循一样的命名规则。合法的常量名以字母或下划线开始,后面跟着任何字母,数字或下划线。
<?php // 合法的常量名 define("FOO", "something"); define("FOO2", "something else"); define("FOO_BAR", "something more"); // 非法的常量名 define("2FOO", "something"); // 下面的定义是合法的,但应该避免这样作:(自定义常量不要以__开头) // 也许未来有一天PHP会定义一个__FOO__的魔术常量 // 这样就会与你的代码相冲突 define("__FOO__", "something");
常量的范围是全局的。不用管做用区域就能够在脚本的任何地方访问常量。
PHP 中的变量用一个美圆符号后面跟变量名来表示。变量名是区分大小写的。
变量名与 PHP 中其它的标签同样遵循相同的规则。一个有效的变量名由字母或者下划线开头,后面跟上任意数量的字母,数字,或者下划线。
<?php $var = 'Bob'; $Var = 'Joe'; echo "$var, $Var"; // 输出 "Bob, Joe" $4site = 'not yet'; // 非法变量名;以数字开头 $_4site = 'not yet'; // 合法变量名;如下划线开头 $i站点is = 'mansikka'; // 合法变量名;能够用中文
变量默认老是传值赋值。那也就是说,当将一个表达式的值赋予一个变量时,整个原始表达式的值被赋值到目标变量。
PHP 也提供了另一种方式给变量赋值:引用赋值。这意味着新的变量简单的引用(换言之,“成为其别名” 或者 “指向”)了原始变量。改动新的变量将影响到原始变量,反之亦然。
使用引用赋值,简单地将一个 &
符号加到将要赋值的变量前(源变量)。例如,下列代码片段将输出“My name is Bob”两次:
<?php $foo = 'Bob'; // 将 'Bob' 赋给 $foo $bar = &$foo; // 经过 $bar 引用 $foo $bar = "My name is $bar"; // 修改 $bar 变量 echo $bar; echo $foo; // $foo 的值也被修改
有一点重要事项必须指出,那就是只有有名字的变量才能够引用赋值。
PHP 支持 9 种原始数据类型。
四种标量类型:
三种复合类型:
两种特殊类型:
这是最简单的类型。boolean 表达了真值,能够为 TRUE 或 FALSE。
要指定一个布尔值,使用常量 TRUE 或 FALSE。两个都不区分大小写。
<?php $foo = True; // 设置 $foo 为 TRUE
integer 是集合 ℤ = {..., -2, -1, 0, 1, 2, ...} 中的某个数。
整型值可使用十进制,十六进制,八进制或二进制表示,前面能够加上可选的符号(- 或者 +)。
<?php $a = 1234; // 十进制数 $a = -123; // 负数 $a = 0123; // 八进制数 (等于十进制 83) $a = 0x1A; // 十六进制数 (等于十进制 26) $a = 0b11111111; // 二进制数字 (等于十进制 255)
浮点型(也叫浮点数 float,双精度数 double 或实数 real)能够用如下任一语法定义:
<?php $a = 1.234; $b = 1.2e3; $c = 7E-10;
一个字符串 string 就是由一系列的字符组成,其中每一个字符等同于一个字节。
定义一个字符串的最简单的方法是用单引号把它包围起来(字符 ')。
<?php echo 'this is a simple string';
若是字符串是包围在双引号(")中, PHP 将对一些特殊的字符进行解析,如 \n
换行,\t
水平制表符等。另外最重要的特征是变量会被解析。
第三种表达字符串的方法是用 heredoc 句法结构:<<<
。
<?php $str = <<<EOD Example of string spanning multiple lines using heredoc syntax. EOD;
PHP 中的数组其实是一个有序映射。映射是一种把 values 关联到 keys 的类型。此类型在不少方面作了优化,所以能够把它当成真正的数组,或列表(向量),散列表(是映射的一种实现),字典,集合,栈,队列以及更多可能性。
<?php $array = array( "foo" => "bar", "bar" => "foo", ); // 自 PHP 5.4 起 $array = [ "foo" => "bar", "bar" => "foo", ];
key 能够是 integer 或者 string。value 能够是任意类型。能够不指定键名,或者对某些单元指定键名。
数组单元能够经过 array[key] 语法来访问。
<?php $array = array( "foo" => "bar", 42 => 24, "multi" => array( "dimensional" => array( "array" => "foo" ) ) ); var_dump($array["foo"]); var_dump($array[42]); var_dump($array["multi"]["dimensional"]["array"]);
要建立一个新的对象 object,使用 new 语句实例化一个类:
<?php class foo { function do_foo() { echo "Doing foo."; } } $bar = new foo; $bar->do_foo();
接下来咱们将看见如何使用变量与常量。你须要保存如下案例并尝试运行程序。
从今之后,保存和运行 PHP 程序的标准步骤以下:
php program.php
来运行程序。输入并运行如下程序:
<?php # 文件名:var.py $i = 5; echo $i . "\n"; $i = $i + 1; print $i . "\n"; $s = <<<EOT This is a multi-line string. This is the second line. EOT; print $s;
输出:
5 6 This is a multi-line string. This is the second line.
下面是这一程序的工做原理。首先,咱们使用赋值运算符(=
)将常量数值 5
赋值给变量 $i
。这一行被称之为声明语句(Statement)由于其工做正是声明一些在这一状况下应当完成的事情:咱们将变量名 $i
与值 5
相链接。而后,咱们经过 echo
语句来打印变量 $i
所声明的内容,这并不奇怪,只是将变量的值打印到屏幕上。这里咱们同时打印了 \n
是为了换行。
接着,咱们将 1
加到 $i
变量所存储的值中,并将得出的结果从新存储进这一变量。而后咱们将这一变量打印出来,并指望获得的值应为 6
。
相似地,咱们将文本赋值给变量 $s
,并将其打印出来。
针对静态编程语言程序员的提示变量只需被赋予某一值。不须要声明或定义数据类型。
所谓物理行(Physical Line)是你在编写程序时你所看到的内容。所谓逻辑行(Logical Line)是 PHP 所看到 的单个语句。PHP 以 ;
做为不一样逻辑行的结束与分隔。
PHP 鼓励每一行使用一句独立语句从而使得代码更加可读。
若是你有一行很是长的代码,你能够经过使用反斜杠将其拆分红多个物理行。
$s = 'This is a string. \ This continues the string.'; echo $s;
输出:
This is a string. This continues the string.
空白区在各行的开头,这被称做缩进(Indentation)。在逻辑行的开头留下空白区(使用空格或制表符)用以肯定各逻辑行的缩进级别,然后者又可用于肯定语句的分组。
这意味着放置在一块儿的语句拥有相同的缩进。每一组这样的语句被称为块(block)。
如何缩进使用四个空格来缩进。好的编辑器会自动为你完成这一工做。请确保你在缩进中使用数量一致的空格。
如今咱们已经了解了诸多本质性的细节,咱们能够前去了解控制流语句等更多更加有趣的东西。记得必定要充分理解你在本章所阅读的内容。