首页 » 网站建设 » 七天php技巧_PHP七天系列之根本常识

七天php技巧_PHP七天系列之根本常识

duote123 2024-11-02 0

扫一扫用手机浏览

文章目录 [+]

根本入门PHP是什么?

PHP(PHP: Hypertext Preprocessor,超文本预处理器的缩写),是一种被广泛运用的开放源代码的、基于做事器真个用于产生动态网页的、可嵌入HTML中的脚本程序措辞,尤其适宜 WEB 开拓。

当客户端向做事器的程序提出要求时,web做事器根据要求相应对应的页面,当页面中含有php脚本时,做事器会交给PHP阐明器进行阐明实行,将天生的html代码再回传给客户端,客户真个浏览器阐明html代码,终极形成网页格式的页面。

七天php技巧_PHP七天系列之根本常识

实行办法

PHP 代码被包含在分外的起始符和结束符中,使得网页的脚本可以进出“PHP 模式”。
其它用 C 或 Perl 措辞写的脚本,须要用大量的命令来编写程序以输出 HTML ,而用PHP 编写一个 HTML 脚本,只需嵌入了一些代码来完成操作(例如,在本例中输出了一些文本)。
和客户真个 JavaScript 不同的是,PHP 代码是运行在做事真个。
如果在做事器上建立了如上例类似的代码,则在运行该脚本后,客户端就能吸收到其结果,但他们无法得知其背后的代码是如何运作的。
乃至可以将 web 做事器设置成让 PHP 来处理所有的 HTML 文件,这么一来,用户就无法得知做事端到底做了什么。

七天php技巧_PHP七天系列之根本常识
(图片来自网络侵删)
PHP运行环境安装

大家在初始学习PHP时利用集成化开拓环境是最好的选择,下面是常用的集成开拓环境

集成开拓软件可利用的操作系统解释WAMPWin推举XAMPPWin/Mac

MampMac推举LampLinux(CentOS/Fedora/Debian/Ubuntu)

PHP的特点是开放源代码的,做事器真个脚本措辞。
独立于操作系统,可以运行在险些所有系统中。
支持大部分的做事器,如Apache,IIS。
支持大量的数据库,紧张是Access\MySQL\SQL Server这三种。
可以创建图象。
… …还有一些其他特色功能在后面的高等技能详细先容。
我们知道的网站如迅雷、新浪微博等大型网站都在利用PHP程序。
C/S与B/S构造

C/S构造

C/S (Client/Server)构造,即大家熟知的客户机和做事器构造。
它是软件系统体系构造,通过它可以充分利用两端硬件环境的上风,将任务合理分配到Client端和Server端来实现,降落了系统的通讯开销。
目前大多数运用软件系统都是Client/Server形式的两层构造

B/S构造

B/S(Browser/Server)构造即浏览器和做事器构造。
它是随着Internet技能的兴起,对C/S构造的一种变革或者改进的构造。
在这种构造下,用户事情界面是通过WWW浏览器来实现,极少部分事务逻辑在前端(Browser)实现,但是紧张事务逻辑在做事器端(Server)实现。
这样就大大简化了客户端电脑载荷,减轻了系统掩护与升级的本钱和事情量,降落了用户的总体本钱。

集成开拓环境

WAMP

Windows下的Apache+Mysql/MariaDB+Perl/PHP/Python,一组常用来搭建动态网站或者做事器的开源软件,本身都是各自独立的程序,但是由于常被放在一起利用,拥有了越来越高的兼容度,共同组成了一个强大的Web运用程序平台。

MAMP

苹果系统下MAMP PRO是专业级版本的经典本地做事器环境的os x软件。
MAMP这几个首字母代表苹果的OSX系统上的Macintosh、Apache、MySQL和PHP,顾名思义,你该当知道MAMP的强大功能 啦!
MAMP 内含 Apache 伺服器、PHP 安装套件以及MySQL安装套件。

PHP的标记风格

<?php … … ?>

这是PHP推举利用的标记风格。
做事器管理员不能禁用这种风格的标记。

分号

PHP用分号来分隔大略的语句。
复合语句用大括号来标记代码块,如条件测试或循环,在大括号后面不要用分号。
和其他措辞不一样的是,在PHP中右括号(?>)前的分号不是必选的。

空缺和换行符

一样平常来说,空缺符在PHP中无关紧要。
可以将一个语句展开成任意行,或者将语句紧缩在一行。
可以利用这个灵巧的格式来使代码更具有可读性(通过排列分配、缩进等)。
一些程序的注释

PHP支持C、C++和Shell脚本风格的注释,如下:

// 单行注释/ .../ 多行注释(把稳:不能嵌套)# 脚本注释查看数据

echo

输出一个或多个变量,他不是函数,不须要利用括号,如果输出多个请用逗号分隔

echo 1,2,3,4;

var_dump

打印变量的干系信息

var_dump(1234);

差异:echo 是直接输出,var_dump输出和带有变量类型

变量知识定义变量

PHP是弱类型措辞,不像其他措辞须要对变量进行类型声明。
PHP中以 $ 作为前缀来定义变量,以a~z(大小写)或 _ 下划线定义变量名。

下面是合法的变量名

$pf= 'PFinalClub';$_name = 'PFinal社区';

下面是非法的变量声明

$999 = 'yahoo.com'$& = 'sina.com.cn'弱类型

PHP是一种非常弱的类型措辞。
在大多数编程措辞中,变量只能保持一种类型的数据,而且这个类型必须在利用变量前声明,例如C措辞中。

而在PHP中,变量的类型常日不是由程序员设定的,确切地说,是根据该变量利用的高下文在运行时(即变量的值)决定的。

大略来说,var = 1;便是数字,var2 = '1'便是字符串,变量类型是由值决定的。

传值与引用

传值赋值

直策应用 = 将变量的值赋值给另一个变量。

$a = 1;$b = $a;$b = 2;echo $a;//结果是1

引用赋值

将一个变量的内存地址赋值给另一个变量的行为即传址赋值。
须要在 = 等号前加上 & 引用符号,这样两个变量指向内存中的一个地址,任何一个变量的改变都影响到另一个变量,有点类似于快捷办法的观点。

$a = 1;$b = &$a;$b = 2;echo $a;//结果是2可变变量

可以变量即利用一个变量的值,作为另一个变量名。

$a = 'hello';//普通变量$$a = 'world';//可变变量 相称于:$hello = ‘world’;echo "$a ${$a}";//输出:hello worldecho "$a $hello";//输出:hello world变量浸染域

变量浸染域指变量在代码中可以访问的位置。

超全局变量

可以代码的任何位置都可以访问的变量

变量解释$_GET地址栏GET提交$_POST表单POST提交$_FILES文件上传变量$_SESSION会话变量$_COOKIEcookie值变量$_GLOBALS全局变量$_REQUEST包含$GET、$POST、$_COOKIE$_SERVER做事器环境变量

全局变量

全局声明(函数外声明)的变量会保存在 $_GLOBALS 中,函数内默认不能访问到全局变量,在函数中访问须要利用 global 关键字。

$pf='PFinal';function p() {//利⽤ global 引入全局变量global $pf;echo $pf;}p();

也可以利用全局数组$GLOBALS调⽤用全局变量量。
如:$GLOBALS['pf'];

检测变量

通过isset 函数可以检测变量是否定义。

var_dump(isset($name));# 结果是false变量销毁

php在全部代码实行结束后会删除所有变量,也利用 unset 函数可以在程序运行中删除变量。

$name='pfinalClub.com';unset($name);

全局变量不能在函数中删除

$name = 'pfinalClub.com';function run(){ global $name; unset($name);}run();echo $name;# 依然可以输出 pfinalClub.com静态变量

PHP支持声明函数变量为静态的(static)。
一个静态变量在所有对该函数的调用之间共享,并且仅在脚本的执行期间函数第一次被调⽤时被初始化。
要声明函数变量为静态的⽤关键字static。
常日静态变量的第一次使⽤用时授予⼀个初始值。

function calculate(){ static $a=1; return ++$a;}calculate();echo calculate();数据类型

利用不同数据类型储存不同数据,就像我们家里面放衣服和放洗手液会利用用不同的容器一样。
下面是常用PHP数据类型表:

类型解释integer整型float浮点型string字符串boolean布尔型array数组object工具

整型

整型可以是十进制、八进制、十六进制。

01988 #十进制0xfff #十六进制

下面是 777 八进制数转成 10进制数,即逢8进1原则,PHP中利用 octdec() 函数可以将8进制转为10进制。

下面是十六进帛 FAF 转为10进制数,PHP中利用hexde()函数将16进制转为10进制

浮点数

浮点数表示实数,可理解为有限或无限小数。

0.12-10.98布尔型

当转换为 boolean 时,以下值被认为是FALSE:这个地方提示学生不用记,按照自己的觉得来就可以剖断了,读完一遍之后把ppt关掉,提问true还是false,学生都会知道的

布尔值 FALSE整型值 0(零)浮点型值 0.0(零)空缺字符串字符串 "0"没有成员变量的数组没有单元的工具(仅适用于 PHP 4)分外类型 NULL(包括尚未设定的变量)

所有其它值都被认为是 TRUE

字符串定义

引号

字符串可以用双引号"" 或 '' 号包含,差异是双引号中可以解析变量。

$url = 'pfinalClub.com';$string = "PFinal社区网址是 {$url}";

在所有输出前利用下面的代码可以精确显示中文:

header('Content-type:text/html;charset=utf-8');

定义符

定界符文本表现的就和双引号字符串一样,在定界符文本中不须要转义引号,适宜输入大量文本。

结束符必须从第一列开始,并且后面除了分号以外不能包含任何其他字符,空格也不可以。

$string =<<<str这是利用定界符输入的内容str;echo $string;

连接符

多个字符串利用 . 符号连接

$name = 'PFinal社区';$url = 'PFinalClub.com'echo $name.$url;转义

转义是将有多种含义的字符进行转换,比如 $即是变量前缀也是美元符号,就须要转义在不同场景进行改变。

echo "变量定义 \$name = 'pfinalCLub.com',学会了吗?";常用函数

strlen — 取得字符串长度传度的函数

echo strlen('pfinalClub.com');

mb_strlen — 根据字符编码获取长度

echo mb_strlen('PFinal社区','utf8');

trim — 截去字符串首尾的内容

$string = ' pfinalClub.com ';echo strlen(trim($string,' moc'));# 从前后删除 moc和空格字符

rtrim从右侧删除、ltrim从左侧删除

$string = ' pfinalClub.com ';echo strlen(rtrim($string,' moc'));

strtolower — 字母转为小写

$str = "Mary Had A Little Lamb and She LOVED It So";$str = strtolower($str);echo $str; // Prints mary had a little lamb and she loved it so

strtoupper — 字母转大写

$str = "Mary Had A Little Lamb and She LOVED It So";$str = strtoupper($str);echo $str; // Prints MARY HAD A LITTLE LAMB AND SHE LOVED IT SO

ucfirst — 将字符串的首字母转换为大写

$foo = 'hello world!';$foo = ucfirst($foo); // Hello world!

ucwords — 将字符串中每个单词的首字母转换为大写

$foo = 'hello world!';$foo = ucwords($foo); // Hello World!$foo = 'hello|world!';$baz = ucwords($foo, "|"); // Hello|World!

md5 — 打算字符串的 MD5 散列值,以 32 字符十六进制数字形式返回散列值

md5('pfinalClub.com') //962ff8546a001f8f6d0adecf08905d14

explode — 利用一个字符串分割另一个字符串

$pizza = "piece1 piece2 piece3 piece4 piece5 piece6";$pieces = explode(" ", $pizza);echo $pieces[0]; // piece1echo $pieces[1]; // piece2

implode — 将一个一维数组的值转化为字符串

$array = array('lastname', 'email', 'phone');$comma_separated = implode(",", $array);echo $comma_separated; // lastname,email,phone

substr — 返回字符串的子串

$rest = substr('abcdef', 1); // bcdef$rest = substr('abcdef', 1, 3); // bcd$rest = substr("abcdef", 0, -1); // 返回 "abcde"$rest = substr("abcdef", 2, -1); // 返回 "cde"$rest = substr("abcdef", 4, -4); // 返回 ""$rest = substr("abcdef", -3, -1); // 返回 "de"

mb_substr — 获取部分字符串

echo mb_substr('PFinal社区', 1, 1, 'utf-8');

strstr — 查找字符串的首次涌现

$email = 'name@example.com';$domain = strstr($email, '@');echo $domain; // 打印 @example.com

strrchr — 查找指定字符在字符串中的末了一次涌现

echo strrchr('pfinal.jpg', '.'); // .jpg

strpos — 查找字符串首次涌现的位置,如果没找到,将返回 FALSE

echo strpos('pfinal.com', 'o'); // 返回1

strrpos — 打算指定字符串在目标字符串中末了一次涌现的位置

echo strrpos('pfinal.com', 'o'); // 返回11

str_replace — 子字符串更换

echo str_replace('pfinalClub', 'pfinal', 'Club.com');echo str_replace(['小猫','小狗'], '', '我家有一只可爱的小猫和小狗');//我家有一只可爱的和echo str_replace(['小猫','小狗'], ['猫猫','旺旺'], '我家有一只可爱的小猫和小狗'); //我家有一只可爱的猫猫和旺旺NULL

NULL数据类型只有一个值NULL。

变量未被授予任何值变量被赋值为NULL被unset()函数处理后的变量

\$a;//变量 \$a未被授予任何变量,值为NULL\$b = NULL;//变量 \$b被赋值为NULL\$c = 10;unset($c);//利用unset()函数处理后,\$c为NULL干系函数

getType()

\$num=1234;\$type=gettype(\$num);var_dump(\$type);

检测是否为布尔型

\$var = true;\$bool = is_bool(\$var);var_dump(\$bool);

检测是否为整型

$int = 1234;$bool = is_int($int);var_dump($bool);

检测是否为浮点数

$num = 1.1234;$bool = is_float($num);var_dump($bool);

检测是否为字符串

$string = 'pfinal';$bool = is_string($string);var_dump($bool);

检测是否为NULL

$var = null;$bool = is_null($var);var_dump($bool);类型转换

自动转换

PHP类型根据值,自动转换

$num1 = '1';$num2 = '2';echo $num1 + $num2; # 字符串转为数字相加

逼迫转换

settype($var,'type'); # type类型为integer、double、string、array 与 object$var = '123';settype($var,’integer’);var_dump($var); 就会变成int类型intval() $var = '123';var_dump(intval($var));floatval() $var = '1.23';var_dump(floatval($var));strval() $var = 123;var_dump(strval($var));常量利用

常量是一个大略值的标识符(名字)。
常量默认为大小写敏感。
按照老例常量标识符总是大写的。

常量特性

常量前面没有美元符号($)常量只能用define() 函数定义,而不能通过赋值语句常量一旦定义就不能被重新定义或者取消定义常量的值用来定义 整型,浮点,字符串,布尔值,数组(PHP7新增)常量可以不用理会变量范围的可以在任何位置访问

声明常量

常量可以利用 const 和 define 定义。

const 是措辞构造,在编译时要比define快define 可以设置第三个参数为true,来定义不区分大小写的常量类文件中定义常量也利用const,以是const统一易读

define('常量名',值);define('WEBNAME','pfinalClub');echo WEBNAME;

常量检测

$bool = defined('WEBNAME');var_dump($bool); // 结果是false

系统常量

__DIR__文件所在目录__FILE__文件路径__LINE__程序代码行号PHP_VERSION 显示PHP版本PHP_OS 显示做事器的操作系统版本TRUEboolean值真(true)支持小写常量FALSEboolean值假(false)支持小写常量__FUNCTION__函数名称__METHOD__方法名称__CLASS__类名称

利用函数 get_defined_constants(true) 可以获取当前可利用的所有常量。

运算符算术运算符

运算符解释$a+$b加法 $a和$b的和$a-$b减法 $a和$b的差$a$b乘法 $a和$b的积$a/$b除法 $a除以$b的商$a%$b取模 $a除以$b后的余++$a前加 $a 的值先加一,然后进行操作$a++后加 $a 的值前辈行操作,后加一--$a前减 $a 的值先减一,然后进行操作$a--后减 $a 的值前辈行操作,后减一

赋值运算符

运算符解释=右边值赋值给左边变量+=左边值加上右边值赋值给左边变量-=左边值减掉右边值赋值给左边变量=左边值乘以右边值赋值给左边变量/=左边值除以右边值赋值给左边变量.=左边字符串连接到右边变量后面%=左边值对右边值取余数后赋值给左边变量

字符串运算符

运算符解释.它返回其旁边参数连接后的字符串.=左边字符串连接到右边变量后面

比较运算符

运算符解释$a==$b即是 TRUE,如果$a即是$b$a===$b全即是 TRUE,如果$a即是$b,并且类型也相同$a!=$b不等 TRUE,如果$a不即是$b$a<>$b不等 TRUE,如果$a不即是$b$a!==$b非全等 TRUE,如果$a不即是$b,或者类型不同$a<$b小于 TRUE,如果$a严格小于$b$a>$b大于 TRUE,如果$a严格$b$a<=$b小于即是 TRUE,如果 $a 小于或者即是$b$a>=$b大于即是 TRUE,如果 $a 大于或者即是$b

逻辑运算符

运算符解释$a and $b逻辑与 TRUE,如果 $a 与 $b 都为 TRUE$a or $b逻辑或 TRUE,如果 $a 或 $b 任一为TRUE!$a逻辑非 TRUE,如果 $a 不为 TRUE$a && $b逻辑与 TRUE,如果 $a 与 $b 都为TRUE$a || $b逻辑或 TRUE,如果 $a 或 $b 任一为TRUE

and与&& 、or与||是同一逻辑运算符的两种写法,但优先级不同。

这四个符号的优先许可从高到低是:&&、||、AND、OR。

三元表达式

变量=(表达式)?值1:值2;当表达式的返回值为true时,$变量被授予值1,否则被授予值2

echo true?'PFinal':'南丞';

?? 与 ?:

$var=0;echo $var?:'大叔'; #输出大叔$var=0;echo $var??'大叔';#输出0

PHP 7 新增加的 NULL 合并运算符(??)是用于实行isset()检测的三元运算的快捷办法。
?: 只判断 true 或 false ,而 ?? 判断变量存在并且值不为null

屏蔽缺点

@ 运算符用于屏蔽表达式警告缺点

@(20/0);

标签:

相关文章

五维视角下的语言技能发展

语言是人类沟通的桥梁,是文明进步的象征。在全球化的大背景下,语言技能的重要性愈发凸显。本文将从听、说、读、写、译五个维度,探讨语言...

网站建设 2024-12-27 阅读0 评论0

二维码在当今社会的重要性与应用

随着科技的飞速发展,二维码已经成为了我们生活中不可或缺的一部分。作为一种信息存储、传递和识别的技术,二维码凭借其便携、高效、安全等...

网站建设 2024-12-27 阅读0 评论0

书籍中的智慧之光,探寻生命的奥秘

在浩瀚的书海中,每一本书都如同一座灯塔,照亮我们前行的道路。那些充满智慧的语言,犹如夜空中最亮的星,引领我们探索生命的奥秘。本文将...

网站建设 2024-12-27 阅读0 评论0