转载-PHP基础(上)-安装方法,语法,变量,echo和print语句,定界符使用,数据类型
参考、引用与传送门:
基本功能模块介绍
PHP简介
- PHP(全称Hypertext Preprocessor即超文本预处理器)是一种通用脚本语言,也是服务器端脚本语言,特别适合于Web开发。
- PHP代码通常在Web服务器上由PHP解释器处理,该解释器以模块,守护程序或公共网关接口(CGI)可执行文件的形式实现。在Web服务器上,解释并执行的PHP代码(可能是任何类型的数据,例如生成的HTML或二进制图像数据)的结果将形成HTTP响应的全部或一部分。各种Web模板系统,Web内容管理系统和Web框架存在可以用来编排或促进该响应的产生。另外,PHP可用于Web上下文之外的许多编程任务,例如独立的图形应用程序和机器人无人机控制。也可以通过命令行界面(CLI)解释和执行任意PHP代码。
- 到2020年9月,使用PHP的网站中,每三个网站中就有两个仍在使用已停用的PHP版本,并且几乎所有PHP网站中的一半都使用5.6或更早版本,甚至Debian都不支持(而Debian 9仍然支持版本)。 7.0和7.1,PHP开发团队不支持这些版本。此外,最受支持的受支持的PHP版本PHP 7.2将在不到2个月的时间内于2020年11月30日停止更新安全性,因此,除非将PHP网站升级到7.3版(或更高版本),因此,有84%的PHP网站将使用停产的版本。
- PHP 文件是什么?
PHP 文件可包含文本、HTML、JavaScript代码和 PHP 代码
PHP 代码在服务器上执行,结果以纯 HTML 形式返回给浏览器
PHP 文件的默认文件扩展名是 “.php” - PHP 能做什么?
PHP 可以生成动态页面内容
PHP 可以创建、打开、读取、写入、关闭服务器上的文件
PHP 可以收集表单数据
PHP 可以发送和接收 cookies
PHP 可以添加、删除、修改您的数据库中的数据
PHP 可以限制用户访问您的网站上的一些页面
PHP 可以加密数据
通过 PHP,您不再限于输出 HTML。您可以输出图像、PDF 文件,甚至 Flash 电影。您还可以输出任意的文本,比如 XHTML 和 XML。 - 为什么使用 PHP?
PHP 可在不同的平台上运行(Windows、Linux、Unix、Mac OS X 等)
PHP 与目前几乎所有的正在被使用的服务器相兼容(Apache、IIS 等)
PHP 提供了广泛的数据库支持
PHP 是免费的,可从官方的 PHP 资源下载它: www.php.net
PHP 易于学习,并可高效地运行在服务器端
安装PHP
- 在您自己的 PC 机上建立 PHP
然而,如果您的服务器不支持 PHP,您必须:
安装 Web 服务器
安装 PHP
安装数据库,比如 MySQL
官方 PHP 网站(PHP.net)有 PHP 的安装说明: http://php.net/manual/en/install.php - PHP 服务器组件
对于初学者建议使用集成的服务器组件,它已经包含了 PHP、Apache、Mysql 等服务,免去了开发人员将时间花费在繁琐的配置环境过程。
WampServer
Windows 系统可以使用 WampServer,下载地址:http://www.wampserver.com/,支持32位和64位系统,根据自己的系统选择版本。
WampServer 安装也简单,你只需要一直点击 “Next” 就可以完成安装了。
XAMPP
XAMPP 支持 Mac OS 和 Windows 系统,下载地址:https://www.apachefriends.org/zh_cn/index.html。 - IDE (Integrated Development Environment,集成开发环境)
- Eclipse for PHP(免费)
Eclipse 是一个开放源代码的、基于Java的可扩展开发平台(如果未安装JDK,则需要先 下载 JDK 安装)。就其本身而言,它只是一个框架和一组服务,用于通过插件组件构建开发环境。幸运的是,Eclipse 附带了一个标准的插件集,包括Java开发工具(Java Development Kit,JDK)。
支持 Windows、Linux 和 Mac OS 平台。
Eclipse for PHP 官方下载地址:http://www.eclipse.org/downloads/packages/eclipse-php-developers/heliosr - PhpStorm(收费)
PhpStorm是一个轻量级且便捷的PHP IDE,其旨在提供用户效率,可深刻理解用户的编码,提供智能代码补全,快速导航以及即时错误检查。
PhpStorm 非常适合于PHP开发人员及前端工程师。提供诸于:智能HTML/CSS/JavaScript/PHP编辑、代码质量分析、版本控制集成(SVN、GIT)、调试和测试等功能。
支持 Windows、Linux 和 Mac OS 平台。
PhpStorm 官方下载地址:http://www.jetbrains.com/phpstorm/download/
PHP 语法
PHP 脚本在服务器上执行,然后将纯 HTML 结果发送回浏览器。
- 基本的 PHP 语法
PHP 脚本可以放在文档中的任何位置。
PHP 脚本以 <?php 开始,以 ?> 结束:
<?php
// PHP 代码
?>
PHP 文件的默认文件扩展名是 “.php”。
PHP 文件通常包含 HTML 标签和一些 PHP 脚本代码。
下面,我们提供了一个简单的 PHP 文件实例,它可以向浏览器输出文本 “Hello World!”:
<!DOCTYPE html>
<html>
<body>
<h1>My first PHP page</h1>
<?php
echo "Hello World!";
?>
</body>
</html>
PHP 中的每个代码行都必须以分号结束。分号是一种分隔符,用于把指令集区分开来。
通过 PHP,有两种在浏览器输出文本的基础指令:echo 和 print。
- PHP 中的注释
和C语言类似,//用于单行注释,/*...*/
用于多行注释
PHP 变量
变量是用于存储数据的"容器":
- 实例:
<?php
$x=5;
$y=6;
$z=$x+$y;
echo $z;
?>
- PHP 变量
与代数类似,可以给 PHP 变量赋予某个值(x=5)或者表达式(z=x+y)。
变量可以是很短的名称(如 x 和 y)或者更具描述性的名称(如 age、carname、totalvolume)。
PHP 变量规则:
变量以 $ 符号开始,后面跟着变量的名称
变量名必须以字母或者下划线字符开始
变量名只能包含字母数字字符以及下划线(A-z、0-9 和 _ )
变量名不能包含空格
变量名是区分大小写的($y 和 $Y 是两个不同的变量) - 创建(声明)PHP 变量
PHP 没有声明变量的命令。
变量在您第一次赋值给它的时候被创建:
$txt="Hello world!";
当您赋一个文本值给变量时,请在文本值两侧加上引号。
- PHP 是一门弱类型语言
在上面的实例中,我们注意到,不必向 PHP 声明该变量的数据类型。
PHP 会根据变量的值,自动把变量转换为正确的数据类型。
在强类型的编程语言中,我们必须在使用变量前先声明(定义)变量的类型和名称。 - PHP 变量作用域
变量的作用域是脚本中变量可被引用/使用的部分。
PHP 有四种不同的变量作用域:
local 局部作用域
global 全局作用域
static 静态作用域
parameter 函数参数作用域 - 局部和全局作用域
在所有函数外部定义的变量,拥有全局作用域。除了函数外,全局变量可以被脚本中的任何部分访问,要在一个函数中访问一个全局变量,需要使用 global 关键字。
在 PHP 函数内部声明的变量是局部变量,仅能在函数内部访问:
<?php
$x=5; // 全局变量
function myTest()
{
$y=10; // 局部变量
echo "<p>测试函数内变量:<p>";
echo "变量 x 为: $x";
echo "<br>";
echo "变量 y 为: $y";
}
myTest();
echo "<p>测试函数外变量:<p>";
echo "变量 x 为: $x";
echo "<br>";
echo "变量 y 为: $y";
?>
在以上实例中 myTest() 函数定义了 $x 和 $y 变量。 $x 变量在函数外声明,所以它是全局变量 , $y 变量在函数内声明所以它是局部变量。
当我们调用myTest()函数并输出两个变量的值, 函数将会输出局部变量 $y 的值,但是不能输出 $x 的值(表现为输出空白),因为 $x 变量在函数外定义,无法在函数内使用,如果要在一个函数中访问一个全局变量,需要使用 global 关键字。
然后我们在myTest()函数外输出两个变量的值,函数将会输出全局变量 $x 的值,但是不能输出 $y 的值(表现为输出空白),因为 $y 变量在函数中定义,属于局部变量。
注:你可以在不同函数中使用相同的变量名称,因为这些函数内定义的变量名是局部变量,只作用于该函数内。
- PHP global 关键字
global 关键字用于函数内访问全局变量。
在函数内调用函数外定义的全局变量,我们需要在函数中的变量前加上 global 关键字:
function myTest()
{
global $x,$y;
$y=$x+$y;//这样就可以修改在外面定义的下x,y的值
}
PHP 将所有全局变量存储在一个名为 $GLOBALS[index] 的数组中。 index 保存变量的名称。这个数组可以在函数内部访问,也可以直接用来更新全局变量。
上面的实例可以写成这样:
function myTest()
{
$GLOBALS['y']=$GLOBALS['x']+$GLOBALS['y'];
}
- Static 作用域
当一个函数完成时,它的所有变量通常都会被删除。然而,有时候您希望某个局部变量不要被删除。
要做到这一点,请在您第一次声明变量时使用 static 关键字:
<?php
function myTest()
{
static $x=0;
echo $x;
$x++;
echo PHP_EOL; // 换行符
}
myTest();
myTest();
myTest();
?>
该程序运行结果是:0 1 2,因为每次调用该函数时,该变量将会保留着函数前一次被调用时的值。
- 参数作用域
参数是通过调用代码将值传递给函数的局部变量。
参数是在参数列表中声明的,作为函数声明的一部分:
<?php
function myTest($x)
{
echo $x;
}
myTest(5);
?>
PHP 5 echo 和 print 语句
- echo 和 print 区别:
echo - 可以输出一个或多个字符串
print - 只允许输出一个字符串,返回值总为 1
注:echo 输出的速度比 print 快, echo 没有返回值,print有返回值1。
PHP echo 语句
echo 是一个语言结构,使用的时候可以不用加括号,也可以加上括号: echo 或 echo()。
- 显示字符串
下面的实例演示了如何使用 echo 命令输出字符串(字符串可以包含 HTML 标签):
<?php
echo "<h2>PHP 很有趣!</h2>";//使用了html的标题标签
echo "Hello world!<br>";
echo "我要学 PHP!<br>";
echo "这是一个", "字符串,", "使用了", "多个", "参数。";//输出一句连续的话
?>
- 显示变量
下面的实例演示了如何使用 echo 命令输出变量和字符串:
<?php
$txt1="学习 PHP";
$txt2="RUNOOB.COM";
$cars=array("Volvo","BMW","Toyota");//声明了一个数组
echo $txt1;
echo "<br>";
echo "在 $txt2 学习 PHP ";
echo "<br>";
echo "我车的品牌是 {$cars[0]}";
?>
PHP print 语句
print 同样是一个语言结构,可以使用括号,也可以不使用括号: print 或 print()。
- print语句的输出和echo语句相同,只是无法输出多个字符串。
print "这是一个", "字符串,", "使用了", "多个", "参数。";//会提示语法错误
PHP定界符EOF(heredoc) 使用说明
- PHP EOF(heredoc)是一种在命令行shell(如sh、csh、ksh、bash、PowerShell和zsh)和程序语言(像Perl、PHP、Python和Ruby)里定义一个字符串的方法。作用就是按照原样,包括换行格式什么的,输出在其内部的东西;
- 使用概述:
1 . 必须后接分号,否则编译通不过。
2 . EOF 可以用任意其它字符代替,只需保证结束标识与开始标识一致。
3 . 结束标识必须顶格独自占一行(即必须从行首开始,前后不能衔接任何空白和字符)。
4 . 开始标识可以不带引号或带单双引号,不带引号与带双引号效果一致,解释内嵌的变量和转义符号,带单引号则不解释内嵌的变量和转义符号。
5 . 当内容需要内嵌引号(单引号或双引号)时,不需要加转义符,本身对单双引号转义,此处相当与q和qq的用法。
<?php
echo <<<EOF
<h1>我的第一个标题</h1>
<p>我的第一个段落。</p>
EOF;
// 结束需要独立一行且前后不能空格
?
注意:
1.以 <<<EOF 开始标记开始,以 EOF 结束标记结束,结束标记必须顶头写,不能有缩进和空格,且在结束标记末尾要有分号 。
2.开始标记和结束标记相同,比如常用大写的 EOT、EOD、EOF 来表示,但是不只限于那几个(也可以用:JSON、HTML等),只要保证开始标记和结束标记不在正文中出现即可。
3.位于开始标记和结束标记之间的变量可以被正常解析,但是函数则不可以。在 heredoc 中,变量不需要用连接符 . 或 , 来拼接,如下:
<?php
$name="runoob";
$a= <<<EOF
"abc"$name//变量不需要用连接符 . 或 , 来拼接
"123"
EOF;
// 结束需要独立一行且前后不能空格
echo $a;
?>
PHP 5 数据类型
String(字符串), Integer(整型), Float(浮点型), Boolean(布尔型), Array(数组), Object(对象), NULL(空值)。
- PHP 字符串
一个字符串是一串字符的序列,就像 “Hello world!”。
你可以将任何文本放在单引号或双引号中:
$x = "Hello world!";
$x = 'Hello world!';
- PHP 整型
整数规则:
整数必须至少有一个数字 (0-9)
整数不能包含逗号或空格
整数是没有小数点的
整数可以是正数或负数
整型可以用三种格式来指定:十进制, 十六进制( 以 0x 为前缀)或八进制(前缀为 0)。
var_dump( '参数1(必填参数)' , 参数n" );
$a = array(1, 2, 3, array("a", "b", "c"));
var_dump($a);/*输出部分:array(4) { [0]=> int(1) [1]=> int(2) [2]=> int(3) [3]=> array(3) { [0]=> string(1) "a" [1]=> string(1) "b" [2]=> string(1) "c" } } */
var_dump() 方法,判断一个变量的类型与长度,并输出变量的数值,如果变量有值,则输出是变量的值,并返回数据类型。显示关于一个或多个表达式的结构信息,包括表达式的类型与值。数组将递归展开值,通过缩进显示其结构。
- PHP 浮点型
浮点数是带小数部分的数字,或是指数形式(如2.4e3表示2.4*10^3=2400)。
var_dump($x);//会返回float(2400) - PHP 布尔型
布尔型可以是 TRUE 或 FALSE。
$x=true;
$y=false; - PHP 数组
PHP 数组
$a = array(1, 2, 3, array("a", "b", "c"));
var_dump($a); /*输出部分:array(4) { [0]=> int(1) [1]=> int(2) [2]=> int(3) [3]=> array(3) { [0]=> string(1) "a" [1]=> string(1) "b" [2]=> string(1) "c" } }*/
- PHP 对象
对象数据类型也可以用于存储数据。
在 PHP 中,对象必须声明。
首先,你必须使用class关键字声明类对象。类是可以包含属性和方法的结构。
然后我们在类中定义数据类型,然后在实例化的类中使用数据类型:
<?php
class Car
{
var $color;
function __construct($color="green") {
$this->color = $color;
}
function what_color() {
return $this->color;
}
}
?>
https://www.runoob.com/try/showphp.php?filename=demo_datatypes_object
以上实例中PHP关键字this就是指向当前对象实例的指针,不指向任何其他对象或类。
- PHP NULL 值
NULL 值表示变量没有值。NULL 是数据类型为 NULL 的值。
NULL 值指明一个变量是否为空值。 同样可用于数据空值和NULL值的区别。
可以通过设置变量值为 NULL 来清空变量数据:
<?php
$x="Hello world!";
$x=null;
var_dump($x);//输出结果为NULL
?>