# PHP 基础

> 原文： [https://zetcode.com/lang/php/basics/](https://zetcode.com/lang/php/basics/)

在 PHP 教程的这一部分中，我们讨论 PHP 的基本编程。

所有 PHP 代码都由两个定界符`<?php`和`?>`包围。

```php
<?php 

# PHP code

```

PHP 代码放在两个定界符之间。

## PHP 控制台输出

我们的 PHP 脚本的输出将发送到控制台。 注意我们之所以说控制台，是因为这里我们使用`PHP_CLI`命令行解释器。 如果我们在网络上测试这些示例，则输出将发送到浏览器。

`printing.php`

```php
<?php 

$a = 23;
print $a;

```

该 PHP 脚本为变量分配值。 它将打印到控制台。

```php
$a = 23;

```

我们为`$a`变量分配一个值 23。 每个变量都以美元字符开头。 此 PHP 代码行是一条语句。 每个语句以分号结尾。 在 PHP 中，分号不是像 JavaScript 或 Ruby 中那样可选的。 他们是必须的。

```php
print $a;

```

我们将`$a`变量打印到控制台。 `print`关键字不会在输出中添加新行。 如果要换行，则必须手动放置。 `print`关键字仅接受一个参数。

`echoing.php`

```php
<?php 

$a = 23;
$b = 24;

echo $a, "\n", $b, "\n";

```

在此脚本中，我们使用`echo`关键字。 它类似于`print`关键字。 与`print`关键字不同，它可以采用多个参数。

```php
$a = 23;
$b = 24;

```

我们定义两个变量。

```php
echo $a, "\n", $b, "\n";

```

我们将变量打印到控制台。 我们还包括换行符。 参数可以用逗号分隔。

```php
$ php echoing.php 
23
24

```

这是脚本的输出。

## PHP 命令行参数

PHP 脚本可以接收命令行参数。 它们遵循程序的名称。 `$argv`是一个包含 PHP 脚本的所有参数的数组。 `$argc`保留传递的参数数量，包括 PHP 脚本的名称。

`arguments.php`

```php
<?php 

echo "There are $argc arguments\n";

for ($i=0; $i < $argc; $i++) {
    echo $argv[$i] . "\n";
}

```

该脚本与命令行参数一起使用。

```php
echo "There are $argc arguments\n";

```

我们打印传递给脚本的参数数量。

```php
for ($i=0; $i < $argc; $i++) {
    echo $argv[$i] . "\n";
}

```

在`for`循环中，我们遍历并打印所有参数。 循环将在本教程的后面部分介绍。

```php
$ 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
<?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
$ php dynamic.php 
Jane 
12 
56.4 
1 

```

运行脚本，我们得到此输出。

`gettype.php`

```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 脚本中，我们动态创建了五种类型。

```php
$temperature = 12.4;

```

定义了一个双变量。

```php
$name = "Jane";

```

定义了一个字符串变量。

```php
$age = 17;

```

定义了一个整数变量。

```php
$values = array(1, 2, 3, 4, 5, 6); 

class Being {};

```

这是一个数组和一个类。 稍后将更详细地介绍这两种类型。

```php
echo gettype($temperature), "\n";

```

`gettype()`函数返回相关变量的类型。

```php
$ php gettype.php 
double
string
integer
array
object

```

该脚本列出了 PHP 的基本类型。

## PHP 常量

在 PHP 中，我们可以创建常量。 常量是值的名称，与变量不同，该值不能与其他值重新关联。 我们使用`define()`函数在 PHP 中创建常量。

`constants.php`

```php
<?php 

define("BLUE", "0000FF");

echo BLUE, "\n";

echo defined("BLUE");
echo "\n";

```

在此 PHP 脚本中，我们定义一个`BLUE`常量。

```php
define("BLUE", "0000FF");

```

在这里，我们定义`BLUE`常数。 按照惯例，用大写字母写常量。

```php
echo BLUE, "\n";

```

在这里我们使用它。 请注意，常量前面没有`$`美元字符。

```php
echo defined("BLUE");

```

我们使用了另一个功能`defined()`函数。 它检查是否存在特定常数。 如果是，则返回`true`。

```php
$ php constant.php 
0000FF
1

```

运行示例将得到以上输出。

PHP 还具有一些预定义的常量。

`predefined_constants.php`

```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
$ 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
<?php 

$age = 17;

echo "Jane is $age years old\n";

```

`$age`变量用双引号括起来的字符串中的值 17 代替。

```php
$ php interpolation.php 
Jane is 17 years old

```

这是输出。

`nointerpolation.php`

```php
<?php 

$age = 17;

echo 'Jane is $age years old\n';

```

但是，如果我们使用单引号，则此方法不起作用。 在这种情况下，不会发生插值，也不会运行特殊字符。

```php
$ php nointerpolation.php 
Jane is $age years old\n

```

我们看到了字符串的逐字输出。

## PHP 包括文件

PHP 代码被分成多个文件，以用于更大的程序。 我们使用`include`语句来连接各种 PHP 文件。

`common.php`

```php
<?php 

define("VERSION", 1.12);

function get_max($x, $y) {
    if ($x > $y) {
        return $x;
    } else {
        return $y;
    }
}

```

假设我们有一个`common.php`文件，其中定义了一些常量和函数。

`myfile.php`

```php
<?php 

include "common.php";

echo "The version is " . VERSION . "\n";

$a = 5;
$b = 3;

echo get_max($a, $b), "\n";

```

我们还有另一个文件要使用上述定义。

```php
include "common.php";

```

我们只需使用`include`关键字将定义包含到文件中即可。 我们必须指定`common.php`文件的确切路径。 在我们的简单情况下，两个文件都在同一目录中。

```php
$ php myfile.php 
The version is 1.12
5

```

这是输出。

本章介绍了 PHP 语言的一些基础知识。