【PHP】PHP从入门到精通(一)——想学习PHP的小伙伴的福利来了!

 PHP从精通到入门

(一)PHP简介和基本知识

   PHP(外文名:PHP: Hypertext Preprocessor,中文名:“超文本预处理器”)是一种通用开源脚本语言。语法吸收了C语言、Java和Perl的特点,利于学习,使用广泛,主要适用于Web开发领域。PHP 独特的语法混合了C、Java、Perl以及PHP自创的语法。它可以比CGI或者Perl更快速地执行动态网页。用PHP做出的动态页面与其他的编程语言相比,PHP是将程序嵌入到HTML(标准通用标记语言下的一个应用)文档中去执行,执行效率比完全生成HTML标记的CGI要高许多;PHP还可以执行编译后代码,编译可以达到加密和优化代码运行,使代码运行更快。     

   

首先,我们来了解一些关于PHP的一些基础知识

【静态网站与动态网站】
1、静态网站:(纯HTML页面,页面固定,不会变化),没有与后台服务器的交互,没有数据库的支持;
2、动态网站:(可以根据交互情况动态显示不同的内容),需要与后台服务器进行数据交互,需要数据库的支持。
【支持动态网站的语言】
Java----->jsp
PHP----->php
asp----->asp

【常见服务器】
Apache:阿帕奇公司旗下服务器,用于解析PHP类网站;
Tomcat:阿帕奇公司旗下的另一款服务器,用于解析JS类网站;

【常见的数据库】
MySQL、Access、Oracle、SQLServer……
我们PHP一般配合MySQL使用。当然PHP可以连接几乎所有主流数据库。

【B/S C/S】
B/S结构:(Browser/Server,浏览器/服务器模式)。用户只需要通过浏览器即可访问的网站,大部分操作功能集中在后台服务器。
C/S结构:Client/Server结构是客户端和服务器结构。用户需要安装客户端。客户端可以分担一定的操作功能。

【常见的开发PHP集成环境】
wamp:Windows+Apache+MySQL+php;
lamp:linux+Apache+MySQL+php;
PHPstudy:
PHPserver:
PHP开发首选Linux系统,但是PHP能够友好的兼容支持各种操作系统(Windows,Linux,macOs、Unix……);

PHP中的入门知识

【PHP标记的种类】
PHP文件中,如果使用php语法,必须将PHP语言放到标记当中。PHP支持如下四种标记方式:
①<?php?>这是PHP的官方推荐写法,也就是我们主要采用的写法!这种标记可以插入到HTML文档的任意位置;
>>>注!!!:如果页面中只有PHP语言,推荐省略结束标记?>
原因:空格部分……
②<script language="php"></script>长标记写法:总是可以使用,但是,我们不推荐。
③<??>短标记写法。默认不开启,需要修改php.ini文件中“short_open_tag=On”打开。但是,由于与HTML标签冲突,不推荐使用。
④<% %>ASP风格,默认不开启,需要修改php.ini文件的"asp-tag = On"打开,但是和ASP,JSP中的标记冲突,不推荐

【PHP中的指令分隔符;】
1、PHP中的"结构定义语句"(分支、循环、类、函数等带{}的),不需要使用分号结尾。
2、PHP中的"功能执行语句",(不用{}结尾的),必须使用分号结尾。
3、特例:最后结束标签?>前的最后一条语句,可以省略分号。

//单行注释
/*
* 多行注释
*/
/**
* 文档注释
*/

#脚本注释

【PHP中的变量】
①PHP中的变量,声明与使用,必须使用$开头。
②PHP是一种弱类型语言,变量其实并不需要声明,可以直接给变量赋任何类型的值;
③PHP中可以使用连等同时声明多个变量。而不能使用逗号分隔。
eg:$num1=$num2=$num3=5;
④常用变量函数:
unset():删除并释放变量;
isset():检测变量是否设置;
empty():检测变量是否为空(未设置或值为Null都算空);
⑤变量的命名:只能有字母数字下划线组成,开头不能是数字。而且,PHP中变量区分大小写!!
$name,$Nnme,$NAME都是不同变量;
但是,PHP的内置函数不区分大小写!echo EcHo都是有效的。

【PHP中的变量类型】
①PHP支持8种数据类型:
4种标量类型:布尔型Boolean 整形integer 浮点型float/double 字符串string
2种复合类型:数组Array 对象Object
2种特殊类型:资源Resource 空null。
②整形的范围从-2^32~-2^32-1,超出这个范围,自动转为浮点型。

【PHP中算false的情况!!!】
1、Boolean false
2、整形 0
3、浮点型0.0
4、字符串"" "0"("0.0" "0000"都算对)
5、空数组
6、空对象只在PHP4版本算false,其他版本都算true。
7、Null和尚未定义的变量
8、所有资源都算对!!(除PHP4,所有对象也算对)

【PHP中字符串的声明】
PHP支持3种方式声明字符串:
①‘‘:如不需要解析变量,单引号执行效率更快(细微差别)
②"":习惯上比较常用
③<<<(定界符):$str=<<<s(定界标识符)
//定界标识符声明字符串,通过<<<(定界标识符)开始
//遇到定界标识符结束!!!前面连一个空格都不能有!
//定界标识符可以是任意字母,只需要保持开始和结束一致即可。
s;
④三种方式的区别:
a:定界符功能默认与双引号相同。定界符中可放双引号。
b:单引号中,不能解析变量。而双引号、定界符都可以解析变量。
注意:双引号中解析变量时,变量名应使用空格分隔,推荐使用{}包起来。
c:各引号中可互相套用,但是不能放与自身相同的引号。
d:单引号中,不能使用转义字符(但是除了‘本身,转义字符\本身),双引号中,可以使用转义字符。

【PHP中的伪类型】
伪类型:并不是一种真实存在的数据类型,它的存在仅仅是用来告诉程序员可以是那些、那种数据类型。常用于撰写帮助文档时使用:
mixed:代表参数可以是多种数据类型;
Number:代表参数可以是integer或者float;
callback:代表参数可以是一个回调函数;

【PHP中的数据类型转换】
1.自动类型转换:表示运算的时候,Boolean、Null、String等类型,会自动转为integer或float类型。
Null——>0
true——>1
false——>0
string——>转非数值前的数字,没有转为0
2.强制类型转换:根据我们的需要,强制将变量转换为其他类型的变量;
①使用()声明新类型强转;
②使用settype();函数强转;
bool settype(mixed var,String type);第一个参数表示任何类型的变量;第二个参数表示字符串类型的数据类型,返回Boolean结果。
③两种方式区别:
第①种,是将转换后的结果,赋给新变量;
第②种,直接修改了原变量的数据类型;
$新变量=(新类型)$原变量;
//新类型,可以使用全拼,也可以使用缩写
(int),(integer) - 转换成整型
(bool),(boolean) - 转换成布尔型
(float),(double),(real) - 转换成浮点型
(string) - 转换成字符串
(array) - 转换成数组
(object) - 转换成对象

bool settype(mixed var,String type)
【PHP判断变量类型的测试函数】
is_bool():判断是否是布尔型
is_int()、is_integer()和is_long():判断是否为整型。
is_float()、is_double()和is_real():判断是否为浮点型
is_string():判断是否为字符串
is_array():判断是否为数组
is_object():判断是否为对象
is_resource():判断是否为资源类型
is_null():判断是否为null
is_scalar():判断是否为标量
is_numeric():判断是否是任何类型的数字和数字字符串
is_callable():判断是否是有效的函数名

【PHP中的输出语句】
echo "……";输出变量的值。
var_dump(num);输出变量的数据类型和值[和一些其他信息]。
print_r();专用于打印数组。

【PHP中常量的定义和使用】
1、常量的定义:bool define(string 常量名,mixed任何类型的常量值[,bool 是否区分大小写]);
2、常量的注意事项:
①常量定义只能使用define()函数;
②常量名,原则上要求必须使用大写声明。而且必须不能使用$声明($只能是变量);
③常量声明以后,默认全局范围有效,没有作用域之说。
④常量不但不能改,而且不能删!unset,settype等函数均无效。
⑤常量默认区分大小写,但是可以在声明常量时,将define函数的第三个参数改为true,即可改为不区分大小写。
⑥常量必须使用define()定义后才能使用。如果使用未声明的常量,则默认转为常量字符串。但是,会报警告!
var_dump(NUM);————>String "num"
⑦常量的值,只能是标量Boolean、String、integer、float。
3、可以使用constant("")读取常量值,没卵用!
可以使用get_defined_constants(),获取已定义的常量!包含系统自定义的N多个常量。

<?php

    header ("Content-Type:text/html; charset=utf-8");
    $num=1;
    $num="哈哈";
    echo $num;
    $num1=$num2=$num3=5;
    echo $num1;
    echo isset($num1);
    var_dump(empty($num1));
    $isTrue="";
    if($isTrue){
        echo "这是true";
    }else{
        echo "这是false";
    }

    echo "<br/><br/><br/>";

    $str1=‘hahah{$num1}hahah\‘ah1 ‘;
    echo $str1;
    $str2="hahahhah{$num1}ahah2";
    echo $str2;
    $str3=<<<str
        123
        456
        789
str;
    echo $str3;

    function func1(){
        define("NUM",12,true);
    }
    func1();
    echo "<pre>";
    print_r(get_defined_constants());
    echo "</pre>";
    #var_dump(num);
    

PHP中的运算符

【运算符】
1、算术运算符:
+,-,*,/,%,++,--
2、赋值运算符:
= += -= *= /= %= .=(连接字符串)
3、比较运算符:
< > <= >= == === <>或!= !==
==:要求值相等,而不需要数据类型相等;
===:要求之和数据类型都相等;
!=:只比较值,值相等为false;
!==:比较值和类型,都相等为false;
4、逻辑运算符:
and/&& or/|| not/! xor(异或)

&&和||进行运算的时候会发生短路,当左侧判断出结果的时候,右侧不再执行(&&左侧为假时,结果为假;||左侧为真时,结果为真)
xor:逻辑异或。两边只有一个对的结果为true;两边都对或者都错结果为false。
5、位运算符:将10进制转为2进制,然后在进行运算。
&:按位与。转成2进制后,两个都为1,结果才为1。eg:12&12——>1100&1100=1100=>12;
|:按位或。转成二进制之后,有一个为1,就是1;
^:按位异或。转成2进制后,两个不相同同为1;都为0或都为1,结果为0;
~:按位取反转成2进制后,所有位数取反,再转为10进制数输出(!!!!!规律:即~n——>-(n+1))
<<:按位左移:转成二进制后,左移几位,右边空余位数补0。(!!!!规律:num<<n——>num*2^n)
>>:按位右移:转成二进制后,右移几位,左边空余位数补0。(!!!!规律:num>>n——>num/2^n)

6、【其他运算符】
?::表达式1?表达式2:表达式3:表达式1成立执行表达式2,否则执行3。
``:调用系统都是环境下的命令行并执行,但是由于安全性以及跨平台性,我们并不提倡使用:eg:`ipconfig`
@:错误信息控制符。可以临时屏蔽掉一些小的错误信息。但是不提倡使用!
=>:数组下标指向
->:对象

【可变变量】
在一个 变量名前边,再加一个$符号。即可将第一个变量的值,作为新变量的名字。
$hello="hello1";
$$hello="world";//$hello1
$$$hello="liu";//$world

&:取址符号。变量名前加&符号,取到当前变量的引用地址(变量在内存中的地址)。
$num2=&$num1;//取出num1的地址给num2,相当于我们说的引用数据类型。num2和num1的值将同时改变。

PHP中,利用代码实现a和b的交换
    $a=10;
    $b=8;
    #智障级
    $c=$a;
    $a=$b;
    $b=$c;

    #凡人级
    $a=$a+$b;
    $b=$a-$b;
    $a=$a-$b;

    #神经级
    $a=$a^$b;
    $b=$a^$b;//$a^$b^$b
    $a=$a^$b;//$a^$b^$a
    /*
     * 分析:
     * 8-------00001000
     * 10------00001010
     * ^-------00000010
     */

    echo $a.",".$b;

PHP中分支和循环结构

【PHP中的分支结构】
if中的判断条件:详见02;
elseif:PHP中elseif语句可以连写,也可以分开写;
switch:PHP中的switch结构,采用松散比较(==)判断,与Js不同!!!!!
>>>注意:php中,continue可以用于switch结构,作用与break相同!
PHP中continue和break可以后接数字,表示跳过几层循环或switch。例如:break 3代表终止3曾循环
do-while:循环最后,必须加;分号。
>>>eg:do{}while();

具体结构可大致参阅博主之前分享的Js中的循环

【流程控制语句】
1、break:终止本层循环;break后面可以接数字,表示终止几层循环 break 3;终止3层循环
2、continue:跳过本次循环;continue后面可以接数字,表示跳过几层循环
3、return:结束函数,并返回值(如果有),但是只有函数中能用,脚本中不建议使用return
4、exit(mixed 结束语)/die(mixed 结束语)函数:直接结束当前的PHP脚本!如果有参数传入,则先打印出结束语,然后结束当前脚本。

//利用分支循环结构实现表格并填入指定数字。
echo "<table style=‘width: 500px; border: 1;  border-collapse: collapse; ‘>";
    for($i=0;$i<10;$i++){
        if($i%2!=0){
            echo "<tr bgcolor=‘red‘>";
        }else{
            echo "<tr bgcolor=‘green‘>";
        }
        for($j=0;$j<10;$j++){
            echo "<td style=‘border: 1px solid black‘;>";
            echo $i.$j;
            echo "</td>";
        }
        echo "</tr>";
    }
    echo "</table>";

本期分享就到这里,觉得内容不错的小伙伴请点推荐,欢迎大家在评论下方评论区与博主互动,谢谢大家!

未完、待续。。。

时间: 2024-08-10 15:11:55

【PHP】PHP从入门到精通(一)——想学习PHP的小伙伴的福利来了!的相关文章

(转) Git版本控制软件结合GitHub从入门到精通常用命令学习手册

转载自:爱分享 » Git版本控制软件结合GitHub从入门到精通常用命令学习手册 原文传送门: http://www.ihref.com/read-16369.html 注意: 学习前请先配置好Git客户端 相关文章:Git客户端图文详解如何安装配置GitHub操作流程攻略 官方中文手册:http://git-scm.com/book/zh GIT 学习手册简介 本站为 Git 学习参考手册.目的是为学习与记忆 Git 使用中最重要.最普遍的命令提供快速翻阅. 这些命令以你可能需要的操作类型划

Python从入门到精通高校竞赛学习系列视频课程

课程目标Python从入门到精通高校竞赛学习系列视频课程适用人群Pythhon初学者,Python开发人员,有linux操作基础,能够坚持学习不放弃的同学,课程简介从零基础学习Python编程,理论结合实践,提高自己综合能力:方向和努力决定了自己的价值:通过本课程学习我们能够掌握基本开发知识,在工作和学习中独立完成相关任务:同时我们提供全面的技术支持和指导,如果有问题可以向我们咨询,我们会积极解决学习和工作中的问题 下载地址:百度网盘请添加链接描述 原文地址:http://blog.51cto.

Git版本控制软件结合GitHub从入门到精通常用命令学习手册

GIT 学习手册简介 本站为 Git 学习参考手册.目的是为学习与记忆 Git 使用中最重要.最普遍的命令提供快速翻阅. 这些命令以你可能需要的操作类型划分,并且将提供日常使用中需要的一些常用的命令以及参数. 本手册将从入门到精通指导大家. 首先,我们要从如何以 Git 的思维方式管理源代码开始. 如何以 GIT 的方式思考(这里可以不用看懂,接着看下面的内容,看完就全懂了.) 懂得 Git,第一件重要的事情就是要知道它与 Subversion.Perforce 或者任何你用过的版本控制工具都有

带你了解Linux基础命令 第二弹(适合想学习Linux的小伙伴)

一.Linux目录结构 FHS定义了两层规范:第一层是"/"目录下的各个目录应该放什么文件,例如:/etc目录下放置系统的配置文件,而/bin和/sbin放置程序及系统命令.第二层是针对/user和/var这两个目录的子目录来定义,例如:/var/log下放置系统日志文件等.下面我们简单介绍一下其中常见的子目录及作用./boot:此目录是系统内核存放的目录,同时也是系统启动时所需文件的存放目录,如vmlinuz和initrd.img.在安装CentOS时,为boot目录创建一个分区,有

【MongoDB总结】写给想学习MongoDB的小伙伴们

引自于笔者序: 首先非常感谢您能打开这篇文档,因为在如此浩瀚的信息中它能与您的邂逅也算是一种缘分,同时也说明了这份文档还有自身的价值,所以在此表示感谢,也很欣慰自己花两个多月研究整理的笔记能给正读的您带来一些帮助.虽然此时我不知道您姓什么叫什么,在哪家单位上班,工作是否顺利,但我知道您是个乐于学习追求上进的人,在这里,一个夜深人静的码农祝福您, 希望您在追求您梦想道路上是顺利的. 这些学习笔记我主要是从三本书上整理的,分别是<MongoDB实战> Kyle Banker著 丁雪丰翻译.<

带你了解Linux基础命令(适合想学习Linux的小伙伴)

一.Linux命令分类及格式Linux命令大体上可以分为两类,一是内部命令,另一类是外部命令.内部命令:指的是集成与Shell解释器程序内部的一些特殊指令,也称为内建指令.内部命令属于Shell的一部分,所以并没有单独对应的系统文件,只要Shell解释器程序被运行,内部指令也就自动载入内存了,用户可直接使用.内部命令无需从硬盘中读取文件,因此执行效率较高. 外部命令:指的是Linux系统中能够完成特定功能的脚本文件或二进制程序,每个外部命令对应了系统中的一个文件,是属于Shell解释器程序之外的

CUDA从入门到精通

CUDA从入门到精通(零):写在前面 在老板的要求下,本博主从2012年上高性能计算课程开始接触CUDA编程,随后将该技术应用到了实际项目中,使处理程序加速超过1K,可见基于图形显示器的并行计算对于追求速度的应用来说无疑是一个理想的选择.还有不到一年毕业,怕是毕业后这些技术也就随毕业而去,准备这个暑假开辟一个CUDA专栏,从入门到精通,步步为营,顺便分享设计的一些经验教训,希望能给学习CUDA的童鞋提供一定指导.个人能力所及,错误难免,欢迎讨论. PS:申请专栏好像需要先发原创帖超过15篇...

Charles 从入门到精通

Charles 从入门到精通 更新说明 这是一篇发过的文章,最近我进行了更新,增加了 Charles 4 的介绍,反向代理功能和设置外部代理,并且介绍了如何解决与FQ软件的冲突. 与此同时,正值 Charles 推出 4.0 版本,数码荔枝在做 Charles 优惠 30 元的特价活动(限时:2016 年 8 月 8 日 - 15 日),最终的正版价格仅为 169 元.感兴趣的可以复制如下信息查看: 淘口令:Charles 新版发布,使用¥Charles¥限时特惠购买正版(长按复制整段文案,打开

Charles从入门到精通

Charles 从入门到精通 发表于 2015-11-14 12:00 文章目录 1. 目录 2. 简介 3. 安装 Charles 4. 将 Charles 设置成系统代理 5. Charles 主界面介绍 6. 过滤网络请求 7. 截取 iPhone 上的网络封包 7.1. Charles 上的设置 7.2. iPhone 上的设置 8. 截取 Https 通讯信息 8.1. 安装证书 8.2. 截取移动设备中的 Https 通讯信息 9. 模拟慢速网络 10. 修改网络请求内容 11. 给