上文介绍了 PHP 语法结构,本章介绍了 PHP 语言的一些基础知识。
所有 PHP 代码都由两个定界符<?php
和?>;
包围。
<?php
# PHP code
PHP 代码放在两个定界符之间。
PHP 控制台输出
我们的 PHP 脚本的输出将发送到控制台。 注意我们之所以说控制台,是因为这里我们使用PHP_CLI
命令行解释器。 如果我们在网络上测试这些示例,则输出将发送到浏览器。
printing.php
<?php
a = 23;
printa;
该 PHP 脚本为变量分配值。 它将打印到控制台。
$a = 23;
我们为$a
变量分配一个值 23。 每个变量都以美元字符开头。 此 PHP 代码行是一条语句。 每个语句以分号结尾。 在 PHP 中,分号不是像 JavaScript 或 Ruby 中那样可选的。 他们是必须的。
print $a;
我们将$ a 变量打印到控制台。 print
关键字不会在输出中添加新行。 如果要换行,则必须手动放置。 print
关键字仅接受一个参数。
echoing.php
<?php
a = 23;b = 24;
echo a, "\n",b, "\n";
在此脚本中,我们使用echo
关键字。 它类似于print
关键字。 与print
关键字不同,它可以采用多个参数。
$a = 23;
$b = 24;
我们定义两个变量。
echo a, "\n",b, "\n";
我们将变量打印到控制台。 我们还包括换行符。 参数可以用逗号分隔。
$ php echoing.php
23
24
这是脚本的输出。
PHP 命令行参数
PHP 脚本可以接收命令行参数。 它们遵循程序的名称。 $argv
是一个包含 PHP 脚本的所有参数的数组。 $argc
保留传递的参数数量,包括 PHP 脚本的名称。
arguments.php
<?php
echo "There are argc arguments\n";
for (i=0; i<argc; i++) {
echoargv[$i] . "\n";
}
该脚本与命令行参数一起使用。
echo "There are $argc arguments\n";
我们打印传递给脚本的参数数量。
for (i=0;i < argc;i++) {
echo argv[i] . "\n";
}
在 for 循环中,我们遍历并打印所有参数。 循环将在本教程的后面部分介绍。
$ php arguments.php 1 2 3
There are 4 arguments
arguments.php
1
2
3
我们将三个参数传递给脚本。 脚本的名称也是 PHP 脚本的参数。
PHP 类型
PHP 是一种弱类型语言。 它适用于类型,但是程序员在声明变量时不指定它们。 数据类型是多种类型的数据之一,如 double,integer 或 boolean。 某种数据类型的值来自特定范围的值,这些值说明该类型的可能值,对该类型可以执行的操作以及该类型的值的存储方式。 PHP 与数据类型隐式地工作。 程序员没有明确指定数据类型。
dynamic.php
<?php
a = "Jane";
echo "a \n";
a = 12;
echo "a \n";
a = 56.4;
echo "a \n";
a = true;
echo "a \n";
在此 PHP 脚本中,我们有一个$a
变量。 首先,我们给它分配一个字符串,然后是一个整数,一个双精度数,最后是一个布尔值。 如果我们将字符串分配给变量,PHP 会自动创建一个字符串变量。
$ php dynamic.php
Jane
12
56.4
1
运行脚本,我们得到此输出。
gettype.php
<?php
temperature = 12.4;name = "Jane";
age = 17;values = array(1, 2, 3, 4, 5, 6);
class Being {};
somebody = new Being();
echo gettype(temperature), "\n";
echo gettype(name), "\n";
echo gettype(age), "\n";
echo gettype(values), "\n";
echo gettype(somebody), "\n";
在上面的 PHP 脚本中,我们动态创建了五种类型。
$temperature = 12.4;
定义了一个双变量。
$name = "Jane";
定义了一个字符串变量。
$age = 17;
定义了一个整数变量。
$values = array(1, 2, 3, 4, 5, 6);
class Being {};
这是一个数组和一个类。 稍后将更详细地介绍这两种类型。
echo gettype($temperature), "\n";
gettype()
函数返回相关变量的类型。
$ php gettype.php
double
string
integer
array
object
该脚本列出了 PHP 的基本类型。
PHP 常量
在 PHP 中,我们可以创建常量。 常量是值的名称,与变量不同,该值不能与其他值重新关联。 我们使用define()
函数在 PHP 中创建常量。
constants.php
<?php
define("BLUE", "0000FF");
echo BLUE, "\n";
echo defined("BLUE");
echo "\n";
在此 PHP 脚本中,我们定义一个BLUE
常量。
define("BLUE", "0000FF");
在这里,我们定义BLUE
常数。 按照惯例,用大写字母写常量。
echo BLUE, "\n";
在这里我们使用它。 请注意,常量前面没有$
美元字符。
echo defined("BLUE");
我们使用了另一个功能defined()
功能。 它检查是否存在特定常数。 如果是,则返回 true。
$ php constant.php
0000FF
1
运行示例将得到以上输出。
PHP 还具有一些预定义的常量。
predefined_constants.php
<?php
echo TRUE;
echo "\n";
echo PHP_VERSION;
echo "\n";
echo PHP_OS;
echo "\n";
echo __LINE__;
echo "\n";
echo __FILE__;
echo "\n";
echo DIRECTORY_SEPARATOR;
echo "\n";
echo PHP_DATADIR;
echo "\n";
在这里,我们打印一些内置的 PHP 常量。 例如,PHP_OS
常量打印构建 PHP 的 OS 版本。
$ php predefined_constants.php
1
5.6.17
Linux
9
/home/janbodnar/prog/php/basics/predefined_constants.php
/
/usr/local/share/php
在我们的系统上,我们得到此输出。
PHP 变量插值
变量插值正在用字符串文字中的值替换变量。 变量插值的另一个名称是:变量替换或变量扩展。
interpolation.php
<?php
age = 17;
echo "Jane isage years old\n";
$age
变量用双引号括起来的字符串中的值 17 代替。
$ php interpolation.php
Jane is 17 years old
这是输出。
nointerpolation.php
<?php
age = 17;
echo 'Jane isage years old\n';
但是,如果我们使用单引号,则此方法不起作用。 在这种情况下,不会发生插值,也不会运行特殊字符。
$ php nointerpolation.php
Jane is $age years old\n
我们看到了字符串的逐字输出。
PHP 包括文件
PHP 代码被分成多个文件,以用于更大的程序。 我们使用include
语句来连接各种 PHP 文件。
common.php
<?php
define("VERSION", 1.12);
function get_max(x,y) {
if (x>y) {
return x;
} else {
returny;
}
}
假设我们有一个common.php
文件,其中定义了一些常量和函数。
myfile.php
<?php
include "common.php";
echo "The version is " . VERSION . "\n";
a = 5;b = 3;
echo get_max(a,b), "\n";
我们还有另一个文件要使用上述定义。
include "common.php";
我们只需使用include
关键字将定义包含到文件中即可。 我们必须指定common.php
文件的确切路径。 在我们的简单情况下,两个文件都在同一目录中。
$ php myfile.php
The version is 1.12
5