PHP学习之路-------1

学习一门语言,首先知道他的后缀名,.php

其次是代码格式(需要注意的是php每一个结束之后必须加分号,对我这种写惯js人来说是一种煎熬)

<?php
// 此处是 PHP 代码
?>

强大的是在可以在html文件写php格式的语法

注释:

// 这是单行注释
# 这也是单行注释
/*
这是多行注释块
它横跨了
多行
*/

变量:(使用之前不用提前声明,比js强多了,不过必须前带“$”,很烦)

$x=5;
$y=6;

也有局部作用域和全局作用域的概念,类似window.a的global $a的全局变量的方式 不过$GLOBALS[“a”]访问

关键字:前面的global就属于一种关键字,声明该变量为全局的变量

static:虽然这种声明不是全局作用域,但这种声明,函数执行完之后,变量不会被销毁,类似js的闭包

ECHO和print

  • echo - 能够输出一个以上的字符串
  • print - 只能输出一个字符串,并始终返回 1

提示:echo 比 print 稍快,因为它不返回任何值。

echo强大之处:

echo "This", " string", " was"//能同时输出2个或以上,调试非常好用

 数据类型:字符串、整数、浮点数、逻辑、数组、对象、NULL。

正常来说和js差不多,字符串,num,string,object,Boolean。。。

php数据类型还算简单,比java简单多了,好像php也是弱类型语言。

两种复杂类型:数组,对象 ,这两种在每一种语言都非常重要

数组:

获得数组的长度 - count() 函数     count($cars)

  在 PHP 中,有三种数组类型:

  • 索引数组 - 带有数字索引的数组可以通过$cars[index]查找
  • 关联数组 - 带有指定键的数组  通过$age['Peter']设置和获取
  • 多维数组 - 包含一个或多个数组的数组

$cars=array("Volvo","BMW","SAAB");//php只有这种,没有js【】这种,属于索引数组,类似js第一种

$age=array("Peter"=>"35","Ben"=>"37","Joe"=>"43");//关联数组,类似对象,因为php对象比较麻烦
$cars = array//多维数组简单来说就是层层嵌套
  (
  array("Volvo",22,18),
  array("BMW",15,13),
  array("Saab",5,2),
  array("Land Rover",17,15)
  );

字符串函数:一大堆:详见 :php字符串函数

这里就例句几个简单的做下比较

1,字符串长度函数     strlen("Hello world!")  等价于  js中的“hello world”.length

2,检索字符串内指定的字符或文本 strpos函数 

strpos("Hello world!","world")//6  返回该字符第一个的下标

3,以千位分组来格式化数字。number_format()  相当于js的toLocaleString

4,str_shuffle()随机地打乱字符串中的所有字符。
5,ord()返回字符串中第一个字符的 ASCII 值。

6,strrev()反转字符串。
7,substr(str,start,length)返回字符串的一部分。截取字符串相当于js的str.substr(start,length)
8,explode(seprator,string,limit)把字符串打散为数组。explode(',',$str,0),以“,”分割为数组类似于js split

PHP 常量

有效的常量名以字符或下划线开头(常量名称前面没有 $ 符号)。

注释:与变量不同,常量贯穿整个脚本是自动全局的。

设置 PHP 常量

如需设置常量,请使用 define() 函数 - 它使用三个参数:

  1. 首个参数定义常量的名称
  2. 第二个参数定义常量的值
  3. 可选的第三个参数规定常量名是否对大小写不敏感。默认是 false。
define("GREETING", "Welcome to W3School.com.cn!");//定义常量
echo GREETING;//使用常量

PHP 运算符(+、-、*、/、%)

没啥好说的    比较 运算符><=!=...也没啥好说的,唯一区别<>和!=一样

逻辑运算符也通用,不过也有两套  and ===$$与   or===||或  !非  xor异或

另外字符串拼接用“.”而不是“+”,echo  'hello'.$x.'world'

条件语句if和switch

if elseif else基本和js用法一样,唯一区别就是elseif之间是没有空格的

switch就一模一样了,不赘述了

循环(用的最多的是for)

  • while - 只要指定条件为真,则循环代码块
  • do...while - 先执行一次代码块,然后只要指定条件为真则重复循环
  • for - 循环代码块指定次数
  • foreach - 遍历数组中的每个元素并循环代码块

while,和do-while基本看了一下,大体一致,反正我js基本不用

好吧,for也一模一样,由于用的多,勉强写一写

for ($x=0; $x<=10; $x++) {
  echo "数字是:$x <br>";
}

foreach 循环只适用于数组,并用于遍历数组中的每个键/值对。

感觉不如js的forEach强大,这个更像for  of循环

$colors = array("red","green","blue","yellow"); 

foreach ($array as $key =>$value) {//$key是键值相当于forEach的下标或关联数组的key值,$value每一项
  echo "$value <br>";
}


函数(语言的灵魂)感觉也没啥区别

function functionName($val=50) {
  被执行的代码;
}

注释:函数名能够以字母或下划线开头(而非数字)。

注释:函数名对大小写不敏感。

php形参可以有默认值,而js在es6才开始引入

数组函数    更多函数详见 : 数组函数集合

array()创建数组。像极了js的new Array,php没有字面量,只能这么穿件数组
array_merge()把一个或多个数组合并为一个数组。不多说和concat有啥区别
array_push()

将一个或多个元素插入数组的末尾(入栈)。js的push

array_shift()删除数组中首个元素,并返回被删除元素的值。
array_slice()返回数组中被选定的部分。
array_splice()删除并替换数组中指定的元素。
array_sum()返回数组中值的和。
array_pop()删除数组的最后一个元素(出栈)。
array_unshift()在数组开头插入一个或多个元素。
count()返回数组中元素的数目。===与sizeof

sort()对数组排序。和js的sort有啥区别
没仔细看,用到可以查一下
  • sort() - 以升序对数组排序
  • rsort() - 以降序对数组排序
  • asort() - 根据值,以升序对关联数组进行排序
  • ksort() - 根据键,以升序对关联数组进行排序
  • arsort() - 根据值,以降序对关联数组进行排序
  • krsort() - 根据键,以降序对关联数组进行排序

PHP 全局变量 - 超全局变量

这些超全局变量是:

  • $GLOBALS
  • $_SERVER
  • $_REQUEST
  • $_POST
  • $_GET
  • $_FILES
  • $_ENV
  • $_COOKIE
  • $_SESSION

$GLOBALS类似与window

$GLOBALS['a']===window.a,在函数或局部作用域内使用和声明全局变量

$_SERVER   这个可以设置一些最重要的元素,相当于BOM  看下表是不是很像location下的方法

元素/代码描述
$_SERVER['PHP_SELF']返回当前执行脚本的文件名。
$_SERVER['GATEWAY_INTERFACE']返回服务器使用的 CGI 规范的版本。
$_SERVER['SERVER_ADDR']返回当前运行脚本所在的服务器的 IP 地址。
$_SERVER['SERVER_NAME']返回当前运行脚本所在的服务器的主机名(比如 www.w3school.com.cn)。
$_SERVER['SERVER_SOFTWARE']返回服务器标识字符串(比如 Apache/2.2.24)。
$_SERVER['SERVER_PROTOCOL']返回请求页面时通信协议的名称和版本(例如,“HTTP/1.0”)。
$_SERVER['REQUEST_METHOD']返回访问页面使用的请求方法(例如 POST)。
$_SERVER['REQUEST_TIME']返回请求开始时的时间戳(例如 1577687494)。
$_SERVER['QUERY_STRING']返回查询字符串,如果是通过查询字符串访问此页面。
$_SERVER['HTTP_ACCEPT']返回来自当前请求的请求头。
$_SERVER['HTTP_ACCEPT_CHARSET']返回来自当前请求的 Accept_Charset 头( 例如 utf-8,ISO-8859-1)
$_SERVER['HTTP_HOST']返回来自当前请求的 Host 头。
$_SERVER['HTTP_REFERER']返回当前页面的完整 URL(不可靠,因为不是所有用户代理都支持)。
$_SERVER['HTTPS']是否通过安全 HTTP 协议查询脚本。
$_SERVER['REMOTE_ADDR']返回浏览当前页面的用户的 IP 地址。
$_SERVER['REMOTE_HOST']返回浏览当前页面的用户的主机名。
$_SERVER['REMOTE_PORT']返回用户机器上连接到 Web 服务器所使用的端口号。
$_SERVER['SCRIPT_FILENAME']返回当前执行脚本的绝对路径。
$_SERVER['SERVER_ADMIN']该值指明了 Apache 服务器配置文件中的 SERVER_ADMIN 参数。
$_SERVER['SERVER_PORT']Web 服务器使用的端口。默认值为 “80”。
$_SERVER['SERVER_SIGNATURE']返回服务器版本和虚拟主机名。
$_SERVER['PATH_TRANSLATED']当前脚本所在文件系统(非文档根目录)的基本路径。
$_SERVER['SCRIPT_NAME']返回当前脚本的路径。
$_SERVER['SCRIPT_URI']返回当前页面的 URI。

前后端交互  $_GET   $_POST    $_REQUEST

$name = $_POST['fname']; //  $_GET   $_POST    $_REQUEST都可以

PHP 超全局变量 $_GET 和 $_POST 用于收集表单数据(form-data)。

基础到这也就完了,基础是枯燥的,学每一门语言都一样,前几周你会发现一点效果没有,不知道学这些有什么用,殊不知万地高楼平地起

只有基础牢固,才能会用这些知识点,才能学的更好!!!!!!!!!!

  • 2
    点赞
  • 13
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值