php学习笔记

下载

下载的编译器   VS Code:Visual Studio Code - Code Editing. Redefined

下载PHPsutdy:Windows版phpstudy下载 - 小皮面板(phpstudy)

了解PHP是什么

全称:Hypertext Preprocessor       即  “超文本预处理器"    

PHP是一种通用开源脚本语言并且在服务器上执行;对初学者相对来说较为简单,同样的对于专业的程序员提供了许多先进的功能。

使用PHP的原因和PHP的作用及文件

  • 原因
  • PHP 可在不同的平台上运行(Windows、Linux、Unix、Mac OS X 等)
  • PHP 与目前几乎所有的正在被使用的服务器相兼容(Apache、IIS 等)
  • PHP 提供了广泛的数据库支持
  • PHP 易于学习,并可高效地运行在服务器端
  • 作用
  • PHP 可以生成动态页面内容
  • PHP 可以创建、打开、读取、写入、关闭服务器上的文件
  • PHP 可以收集表单数据
  • PHP 可以发送和接收 cookies
  • PHP 可以添加、删除、修改您的数据库中的数据
  • PHP 可以限制用户访问您的网站上的一些页面
  • PHP 可以加密数据
  • 文件
  • PHP 文件可包含文本、HTML、JavaScript代码和 PHP 代码
  • PHP 代码在服务器上执行,结果以纯 HTML 形式返回给浏览器
  • PHP 文件的默认文件扩展名是 ".php"
  • PHP文件通常包含 HTML 标签和一些 PHP 脚本代码。
  • PHP 脚本可以放在文档中的任何位置

PHP的基本语法

PHP 脚本以 <?php 开始,以 ?> 结束
 

<?php
// PHP 代码
?>

<?php
echo "Hello World!";
?> 

PHP中的注释

<?php
// 这是 PHP 单行注释

/*
这是
PHP 多行
注释
*/
?>

PHP 中的每个代码行都必须以分号结束。分号是一种分隔符,用于把指令集区分开来。

通过 PHP,有两种在浏览器输出文本的基础指令:echo 和 print

PHP变量

变量是用于存储信息的"容器"
 

<?php
// PHP 代码
?>

<?php
echo "Hello World!";
?> 

与代数类似,在PHP中这些字母被称为变量

变量可以是很短的名称(如 x 和 y)或者更具描述性的名称(如 age、carname、totalvolume)

PHP 变量规则:

  • 变量以 $ 符号开始,后面跟着变量的名称
  • 变量名必须以字母或者下划线字符开始
  • 变量名只能包含字母、数字以及下划线(A-z、0-9 和 _ )
  • 变量名不能包含空格
  • 变量名是区分大小写的($y 和 $Y 是两个不同的变量)
  • PHP 语句和 PHP 变量都是区分大小写的。

注释:当赋一个文本值给变量时,请在文本值两侧加上引号。

PHP 有四种不同的变量作用域

  • local
  • global
  • static
  • parameter

局部变量和全局变量

在所有函数外部定义的变量,拥有全局作用域。除了函数外,全局变量可以被脚本中的任何部分访问,要在一个函数中访问一个全局变量,需要使用 global 关键字。

在 PHP 函数内部声明的变量是局部变量,仅能在函数内部访问

你可以在不同函数中使用相同的变量名称,因为这些函数内定义的变量名是局部变量,只作用于该函数内。

global关键字

global关键字用于函数内访问全局变量

例子:

<?php
$x=5;
$y=10;

function  myTest()
{
    global$X,$Yy;
    $y=$X+$Y;
}

myTest()
echo $y;//输出15
?>

PHP将所有全局变量存储在一个名为GLOBALS[index]的数组中。index保存变量的名称。这个数组可以在函数内部访问。也可以直接用来更新全局变量。

上面实例的另一种写法:

<?php
$x=5;
$y=10;


function myTest()
{
   $GLOBALS['y']=$GLOBALS['x']+$GLOBALS['y'];
}

myTest();
echo $y;
   
?>

Static 作用域

当一个函数完成时,它的所有变量通常都会被删除。然而,有时候您希望某个局部变量不要被删除。

要做到这一点,请在您第一次声明变量时使用 static 关键字:

实例

<?php
function myTest()
{
    static $x=0;
    echo $x;
    $x++;
    echo PHP_EOL;     
}

myTest();
myTest();
myTest();
?>

注释:该变量仍然是函数的局部变量。

 PHP echo和print语句

echo和print的区别

echo- 可以输出一个或者多个字符节.

print-只允许输出一个字符串,返回值为1.

提示:echo 输出的速度比 print 快, echo 没有返回值,print有返回值1。

PHP echo 语句

echo是一个语言结构,使用的时候不用加括号,也可以加上括号:echo或echo()

显示字符串

      实例:(字符串可以包含 HTML 标签)


<?php
echo "<h2>PHP 很有趣!</h2>";
echo "Hello world!<br>";/*<br>为换行符*/
echo "我要学 PHP!<br>";
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和echo一样,把上面的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;
?>

1.PHP 定界符 EOF 的作用就是按照原样,包括换行格式什么的,输出在其内部的东西;.

2.在 PHP 定界符 EOF 中的任何特殊字符都不需要转义;.

3.PHP 定界符 EOF

   PHP数据类型

String(字符串)    Integer(整型)  Float(浮点型)  Boolean(布尔型) Array(数组) Object(对象)   Null(空值)

整型:是一个没有小数的数字。

整型规则: 整数必须有一个数字(0-9);整数不能包含空格或者逗号;整数没有小数点;整数可以为正也可以为负;整型可以用三种形式指定:十进制、十六进制(前缀0x)、八进制(前缀0)

浮点型:是带小数部分的数字,或是指数形式。

布尔型:是 TRUE 或 FALSE。通常用于条件判断。

数组:在一个变量中存储多个值。

对象数据类型:可以用于存储数据,对象必须声明。

空值:NULL 值表示变量没有值。NULL 是数据类型为 NULL 的值。

NULL 值指明一个变量是否为空值。 同样可用于数据空值和NULL值的区别。

PHP类型比较

松散比较:使用两个等号==比较,只比较值,不比较类型。                                        

严格比较:使用三个等号===比较,既比较值又比较类型。

PHP 常量

常量是一个简单值的标识符。该值在脚本中不能改变。

一个常量由英文字母、下划线、和数字组成,但数字不能作为首字母出现。 (常量名不需要加 $ 修饰符)。

ture可以在设置常量时大小写不敏感。define函数用来设置常量。

常量在定义后,默认是全局变量,可以在整个运行的脚本的任何地方使用。

PHP 字符串变量

字符串变量用于存储并处理文本;字符串变量用于包含有字符的值。

在创建字符串之后,我们就可以对它进行操作了。您可以直接在函数中使用字符串,或者把它存储在变量中。

注释:当您赋一个文本值给变量时,请记得给文本值加上单引号或者双引号

 <?php
$txt="Hello world!";
echo $txt;
?> 

并置运算符

在 PHP 中,只有一个字符串运算符。并置运算符 (.) 用于把两个字符串值连接起来。

 <?php
$txt1="Hello world!";
$txt2="What a nice day!";
echo $txt1 . " " . $txt2;
?> 

strlen() 函数

strlen() 函数返回字符串的长度(字节数)。

strlen() 常常用在循环和其他函数中,因为那时确定字符串何时结束是很重要的。(例如,在循环中,我们需要在字符串中的最后一个字符之后结束循环。)

strpos() 函数

strpos() 函数用于在字符串内查找一个字符或一段指定的文本。如果在字符串中找到匹配,该函数会返回第一个匹配的字符位置。如果未找到匹配,则返回 FALSE。

字符串中第一个字符的位置是 0,而不是 1

PHP 运算符

赋值运算符 = 用于给变量赋值。

算术运算符 + 用于把值加在一起。

PHP 递增/递减运算符

运算符名称描述
++ x预递增x 加 1,然后返回 x
x ++后递增返回 x,然后 x 加 1
-- x预递减x 减 1,然后返回 x
x --后递减返回 x,然后 x 减 1

PHP 比较运算符

运算符名称描述实例
x == y等于如果 x 等于 y,则返回 true5==8 返回 false
x === y绝对等于如果 x 等于 y,且它们类型相同,则返回 true5==="5" 返回 false
x != y不等于如果 x 不等于 y,则返回 true5!=8 返回 true
x <> y不等于如果 x 不等于 y,则返回 true5<>8 返回 true
x !== y绝对不等于如果 x 不等于 y,或它们类型不相同,则返回 true5!=="5" 返回 true
x > y大于如果 x 大于 y,则返回 true5>8 返回 false
x < y小于如果 x 小于 y,则返回 true5<8 返回 true
x >= y大于等于如果 x 大于或者等于 y,则返回 true5>=8 返回 false
x <= y小于等于如果 x 小于或者等于 y,则返回 true5<=8 返回 true

PHP 逻辑运算符

运算符名称描述实例
x and y如果 x 和 y 都为 true,则返回 truex=6
y=3
(x < 10 and y > 1) 返回 true
x or y如果 x 和 y 至少有一个为 true,则返回 truex=6
y=3
(x==6 or y==5) 返回 true
x xor y异或如果 x 和 y 有且仅有一个为 true,则返回 truex=6
y=3
(x==6 xor y==3) 返回 false
x && y如果 x 和 y 都为 true,则返回 truex=6
y=3
(x < 10 && y > 1) 返回 true
x || y如果 x 和 y 至少有一个为 true,则返回 truex=6
y=3
(x==5 || y==5) 返回 false
! x如果 x 不为 true,则返回 truex=6
y=3
!(x==y) 返回 true

三元运算符

语法格式

(expr1) ? (expr2) : (expr3) 

对 expr1 求值为 TRUE 时的值为 expr2,在 expr1 求值为 FALSE 时的值为 expr3。


<?php
$test = '菜鸟教程';
$username = isset($test) ? $test : 'nobody';
echo $username, PHP_EOL;
 

运算符优先级

下表按照优先级从高到低列出了运算符。同一行中的运算符具有相同优先级,此时它们的结合方向决定求值顺序。

说明:左 = 从左到右,右 = 从右到左。

结合方向运算符附加信息
clone newclone 和 new
[array()
++ -- ~ (int) (float) (string) (array) (object) (bool) @类型和递增/递减
instanceof类型
!逻辑运算符
* / %算术运算符
+ – .算术运算符和字符串运算符
<< >>位运算符
== != === !== <>比较运算符
&位运算符和引用
^位运算符
|位运算符
&&逻辑运算符
||逻辑运算符
? :三元运算符
= += -= *= /= .= %= &= |= ^= <<= >>= =>赋值运算符
and逻辑运算符
xor逻辑运算符
or逻辑运算符
,多处用到

运算符优先级中,or 和 ||,&& 和 and 都是逻辑运算符,效果一样,但是其优先级却不一样。

括号优先运算

 PHP If...Else 语句

if 语句 - 在条件成立时执行代码

if...else 语句 - 在条件成立时执行一块代码,条件不成立时执行另一块代码

if...elseif....else 语句 - 在若干条件之一成立时执行一个代码块

switch 语句 - 在若干条件之一成立时执行一个代码块

if...elseif....else 语句


<?php
$t=date("H");
if ($t<"10")
{
    echo "Have a good morning!";
}
elseif ($t<"20")
{
    echo "Have a good day!";
}
else
{
    echo "Have a good night!";
}
?>

数组

数组是一个能在单个变量存储多个值的特殊变量。

array()函数用于创建数组,     array();

数组类型:

数值数组:带有数字ID键的数组。

关联数组:带有指定的键的数组,每个键关联一个值。

多维数组:包含一个或者多个数组的值。

两种方法:1,自动分配ID键(从0开始)   例子:$cars =array("Volvo","BMW","Toyota");

                  2,人工分配ID             例子:  $cars[0]="Volvo";

                                                                   $cars[1]="BMW";

                                                                   $cars[2]="Toyota";

count()函数用于返回数组元素的数量。

例子

<?php
$cars=array("Vovor","BMW","Toyota");
echo count($cars);
?>

数组排序

数组中的元素可以按字母或数字顺序进行降序或升序排列。

  • sort() - 对数组进行升序排列
  • rsort() - 对数组进行降序排列
  • asort() - 根据关联数组的值,对数组进行升序排列
  • ksort() - 根据关联数组的键,对数组进行升序排列
  • arsort() - 根据关联数组的值,对数组进行降序排列
  • krsort() - 根据关联数组的键,对数组进行降序排列

PHP 超级全局变量

在一个脚本的全部作用域都可用。

列表:$GLOBALS           $_SERVER           $_REQUEST       $_POST         $_GET

$_FILES       $_ENV        $_COOKIE          $_SESSION

  $_SERVER    的解析

元素/代码描述
$_SERVER['PHP_SELF']当前执行脚本的文件名,与 document root 有关。例如,在地址为 http://example.com/test.php/foo.bar 的脚本中使用 $_SERVER['PHP_SELF'] 将得到 /test.php/foo.bar。__FILE__ 常量包含当前(例如包含)文件的完整路径和文件名。 从 PHP 4.3.0 版本开始,如果 PHP 以命令行模式运行,这个变量将包含脚本名。之前的版本该变量不可用。
$_SERVER['GATEWAY_INTERFACE']服务器使用的 CGI 规范的版本;例如,"CGI/1.1"。
$_SERVER['SERVER_ADDR']当前运行脚本所在的服务器的 IP 地址。
$_SERVER['SERVER_NAME']当前运行脚本所在的服务器的主机名。如果脚本运行于虚拟主机中,该名称是由那个虚拟主机所设置的值决定。(如: www.runoob.com)
$_SERVER['SERVER_SOFTWARE']服务器标识字符串,在响应请求时的头信息中给出。 (如:Apache/2.2.24)
$_SERVER['SERVER_PROTOCOL']请求页面时通信协议的名称和版本。例如,"HTTP/1.0"。
$_SERVER['REQUEST_METHOD']访问页面使用的请求方法;例如,"GET", "HEAD","POST","PUT"。
$_SERVER['REQUEST_TIME']请求开始时的时间戳。从 PHP 5.1.0 起可用。 (如:1377687496)
$_SERVER['QUERY_STRING']query string(查询字符串),如果有的话,通过它进行页面访问。
$_SERVER['HTTP_ACCEPT']当前请求头中 Accept: 项的内容,如果存在的话。
$_SERVER['HTTP_ACCEPT_CHARSET']当前请求头中 Accept-Charset: 项的内容,如果存在的话。例如:"iso-8859-1,*,utf-8"。
$_SERVER['HTTP_HOST']当前请求头中 Host: 项的内容,如果存在的话。
$_SERVER['HTTP_REFERER']引导用户代理到当前页的前一页的地址(如果存在)。由 user agent 设置决定。并不是所有的用户代理都会设置该项,有的还提供了修改 HTTP_REFERER 的功能。简言之,该值并不可信。)
$_SERVER['HTTPS']如果脚本是通过 HTTPS 协议被访问,则被设为一个非空的值。
$_SERVER['REMOTE_ADDR']浏览当前页面的用户的 IP 地址。
$_SERVER['REMOTE_HOST']浏览当前页面的用户的主机名。DNS 反向解析不依赖于用户的 REMOTE_ADDR。
$_SERVER['REMOTE_PORT']用户机器上连接到 Web 服务器所使用的端口号。
$_SERVER['SCRIPT_FILENAME']当前执行脚本的绝对路径。
$_SERVER['SERVER_ADMIN']该值指明了 Apache 服务器配置文件中的 SERVER_ADMIN 参数。如果脚本运行在一个虚拟主机上,则该值是那个虚拟主机的值。(如:someone@runoob.com)
$_SERVER['SERVER_PORT']Web 服务器使用的端口。默认值为 "80"。如果使用 SSL 安全连接,则这个值为用户设置的 HTTP 端口。
$_SERVER['SERVER_SIGNATURE']包含了服务器版本和虚拟主机名的字符串。
$_SERVER['PATH_TRANSLATED']当前脚本所在文件系统(非文档根目录)的基本路径。这是在服务器进行虚拟到真实路径的映像后的结果。
$_SERVER['SCRIPT_NAME']包含当前脚本的路径。这在页面需要指向自己时非常有用。__FILE__ 常量包含当前脚本(例如包含文件)的完整路径和文件名。
$_SERVER['SCRIPT_URI']URI 用来指定要访问的页面。例如 "/index.html"。

$_REQUEST       $_POST   都用于收集表单数据

循环执行代码块指定的次数,或者当指定的条件为真时循环执行代码块。

while循环

while 循环将重复执行代码块,直到指定的条件不成立。

do...while 语句

do...while 语句会至少执行一次代码,然后检查条件,只要条件成立,就会重复进行循环。

for 循环

for 循环用于您预先知道脚本需要运行的次数的情况。

参数:

  • 初始值:主要是初始化一个变量值,用于设置一个计数器(但可以是任何在循环的开始被执行一次的代码)。
  • 条件:循环执行的限制条件。如果为 TRUE,则循环继续。如果为 FALSE,则循环结束。
  • 增量:主要用于递增计数器(但可以是任何在循环的结束被执行的代码)。

注释:上面的初始值增量参数可为空,或者有多个表达式(用逗号分隔)。

foreach 循环

用于遍历数组

PHP 函数

PHP函数准则:

函数的名称应该提示出他的功能;函数名称以字母或下划线开头(不能以数字开头)

添加参数

参数就在函数名称后面的一个括号内指定。

PHP 魔术常量

__LINE__   __FILE__    __DIR__   __FUNCTION__   __CLASS__

__TRAIT__   __METHOD__   __NAMESPACE__

命名空间(namespace)

解决问题:1.用户编写的代码与PHP内部的类/函数/常量或第三方类/函数/常量之间的名字冲突。

2.为很长的标识符名称(通常是为了缓解第一类问题而定义的)创建一个别名(或简短)的名称,提高源代码的可读性.

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值