PHP 是一门解释型语言,会直接执行你写的代码。
PHP 代码文件是文本文件,其中包含 PHP 起始标签<?php,用来标记 PHP 代码的开始。
如果文件里只有 PHP 代码,可以省略用来标记 PHP 代码结束的结束标签?>。
关于 PHP 标签的更多内容,参见 PHP 标签文档。
<?php
// All PHP code goes here
// No closing tag required at the end
为了方便阅读,所有代码示例都省略了 PHP 起始标签<?php。
不过所有 PHP 练习里都带了它,你不需要自己添加。
所有语句,比如赋值或函数调用,都必须以;结尾,用来分隔指令。
省略;(就像在 JavaScript 里那样)是不允许的,会导致语法错误。
从 PHP 文档中进一步了解指令分隔。
$message = "Success!"; // Statement correctly ends with `;`
$message = "I know JavaScript." // PHP Parse error: syntax error, [...]
PHP 是一门动态类型的编程语言。
值的类型只在程序运行时才会被检查。
使用赋值运算符=,可以把任意类型的值赋给任意变量名。
变量名必须以美元符号$开头。
想深入了解变量,参见 PHP 变量文档。
$count = 1; // Assign an integer value of 1
$count = 2; // Re-assign a new value to the variable
$count = false; // You may assign any value type
// Strings can be created by enclosing the characters
// within single `'` quotes or double `"` quotes.
$message = "Success!";
字面值和保存在变量里的值都可以传给函数。 定义形参时会创建新的变量,用来保存传入的值。
// Declare the window_width function
function window_width($width)
{
echo $width; // Access the value passed into the function as $width
// ...
}
window_width(100); // Call the function with the literal value 100
$newWidth = 100;
window_width($newWidth); // Call the function with the value stored in $newWidth
函数可以使用关键字return返回值。
要返回的值可以是字面值、保存在变量里的值,或者某条指令的结果。
function window_height()
{
$heightOffset = 10;
return 100 + $heightOffset;
}
类及其实例内部的函数称为方法。
调用方法时,要在方法名前面加上实例和->。
类实例通过new操作创建。
方法可以访问特殊变量$this,它指向当前实例。
<?php
// Calculator.php
class Calculator {
// ...
public function sub($x, $y)
{
return $this->add($x, -$y); // Calls the method add() of the current instance
}
public function add($x, $y)
{
return $x + $y;
}
}
$calculator = new Calculator(); // Creates a new instance of Calculator class
$calculator->sub(3, 1); // Calls the method sub() of the instance stored in $calculator
// => 2
我们会在后面的练习里更深入地了解函数和类。
作为调试的基本方式,打印变量的值和内容有助于理解发生了什么。 PHP 可以用下面的方式打印值:
echo $variable;,输出值的字符串表示print $variable;,和echo $variable;一样var_dump($variable);,可以更深入地了解值,例如 PHP 看到的类型使用echo或print时:空字符串、false和null都不会显示出来。
而类和实例会让它们报错。
用var_dump()可以看到这些。
在在线编辑器中,你产生的输出会和测试结果一起显示。 使用 CLI 时,输出会和进度指示混在一起,出现在测试摘要之前。
文件是 PHP 和许多其他语言中代码组织的基本单位。 为了在代码块里指明要看哪个文件,我们用注释来显示文件名。 你完全不需要在自己的文件里加这类注释:
<?php
// NameOfPhpFile.php
[...]
代码、函数和类都可以放在同一个文件里。 但通常这类代码单元会放在不同的文件里。
常见的做法是一个文件放一个类,文件名与类名一致。
<?php
// Calculator.php
class Calculator {
// ...
function add($x, $y)
{
return $x + $y;
}
}
函数通常会归类到描述其共同主题的文件中。
<?php
// window_handling.php
function window_paint()
{
// ...
}
function window_size($width, $height)
{
// ...
}
function window_move($x, $y)
{
// ...
}
还有些文件包含用于直接执行的语句,比如通常用作 Web 应用入口的index.php。
<?php
// index.php
$sum = add(1, 2);
// ...
类名都应该是PascalCase。
根据风格规范的不同,变量、函数和方法名可以是camelCase或snake_case。
名称可以包含字母a-zA-Z、数字0-9和下划线_,但不能以数字开头。
单行注释以//开头,一段文本也可以用/*和*/包起来,变成多行注释。
// Single-line comment
/*
Multi-line comment
*/