学习笔记

PHP基础

基础我从下午看到晚上,基本了解了PHP的基础知识2019.12.21也就是昨天

简介

PHP是一种创建动态交互性站点的强有力的服务器端脚本语言。(不太懂orz)
PHP的五大优势:
PHP运行于各种平台 windows、linux等
PHP兼容几乎所有服务器 Apache、IIS等(还是不太懂)
PHP支持多种数据库
PHP是免费的(看到这个,我觉得是最重要的,hh,毕竟微软收费软件盗版的用多了)
PHP易于学习,并可高效的运行在服务器端


基础语法

PHP脚本以 <?php 开头,以 ?>结尾
例如:
<?php
//此处写需要执行的代码;
?>

实例:

<!doctype html>
<html>
<body>
<?php
echo "hello world";
?>
</body>
</html>

php的两种注释:
//单行注释;

/*
*多行注释;
*/
这个规则貌似跟我大一刚学的C语言注释是一样的


变量

变量规则:

变量以$符号开始,后面直接跟着变量名
变量名必须以字母或者下划线字符开始(这个规则跟VB和C也好像啊)
变量名只能包含字母数字字符和下划线(同上)
变量名不能包含空格
变量名区分大小写($y和$Y是两个不同的变量)

声明PHP变量:
PHP没有创建变量的命令,变量在第一次赋值的时候被创建,PHP会根据值,自动把变量转换为相应的数据类型(这个和我在暑假学的Python很像)

PHP变量作用域:
PHP有三种不同的变量作用域
local(局部)
global(全局)
static(静态)
这个看起来也和C很像,虽然我不知道PHP里面是怎么样的,不太明白

输出函数

PHP有两种输出方式:echo和print

区别:
echo可以输出一个或多个字符串,没有返回值
print只能输出一个字符串,返回值总为1
echo输出的速度比print快,echo没有返回值,print有返回值1 (这里就不太明白,这个返回值有什么用)
注:字符串中能包含HTML标签

echo和print都是一个语言结构,有无括号均可使用:echo或者echo()||print或者print()

显示字符串

实例:

<?php
echo "<h2>PHP is fun! </h2>;
echo "Hello world! <br/>";
echo "I'm about to learn PHP!<br/>";
echo "这是一个","字符串,","使用了","多个","参数。";
?>

PHP基础

显示变量

<?php
$txt1="Hello world!";
$txt2="<br/>";
$arr=array("Volvo","阿杰","Toyota");
echo "$txt1<br/>";
echo "$txt2";
echo "$arr[1]<br/>";
echo "Hello world!";
?>

PHP基础


数据类型

1.string(字符串)
字符串是字符序列,比如"Hello world!" (这里不太懂这个字符序列是什么意思)
字符串可以是引号内的任何文本,单引号或者双引号均可。

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

2.integer(整形)
整数规则:
必须至少有一个数字0~9
整数不能包含逗号或空格
整数不能有小数点
整数可以是正数或负数
整形可以用三种格式来指定:十进制、十六进制(0x前缀)、八进制(0前缀)

var_dump()函数返回变量的数据类型和值:

<?php
$x = 123;
var_dump($x);
?>

3.float(浮点型)
浮点数是带小数的数字,也可以是指数形式(如3.0e8)

4.boolean(布尔型)
布尔型的值是true或false
$x=true;
$y=false;
注:布尔型通常用于条件判断

5.array(数组)
数组可以在一个变量中存储多个值

6.object(对象)
对象数据类型也可以用于存储数据
在PHP中,对象必须声明
首先,必须用class关键字声明类对象。类是可以包含属性和方法的结构。
然后,在类中定义数据类型,然后在实例化的类中使用数据类型

实例:

<?php
class car
{
  var $color;
  function car($color="green"){
    $this->color = $color;
  }
  function what_color(){
    return $this->color;
  }
}
?>

7.NULL(空值)
null值表示变量没有值,null是数据类型为null的值。
null值指明一个变量是否是空值。同样可用于数据空值和null值的区别。
可以通过设置变量值为null来清空变量数据

<?php
$x="Hello world!";
$x=null;
var_dump($x);
?>

PHP常量

常量类似变量,但是常量被定义之后就不能更改了
常量是一个简单值的标识符,该值在脚本中不能改变。
有效的常量名以字符或下划线开头(常量名前面没有$符号)
常量在整个脚本中都可以使用

设置PHP常量

用define()函数来定义常量,它有三个参数
define("常量名","常量的值","可选参数,如果设置true,则常量大小写不敏感,不设置就是默认是false即大小写敏感");

常量是全局的

常量在定义后,默认是全局变量(global),可以在整个脚本的任何地方使用
实例:

<?php
define("greeting","hello world");
function text(){
    echo greeting;
}
text(); //输出"hello world"
?>

在text函数中使用常量,即便常量定义在函数外也可以正常使用常量,这就是全局的意义。


字符串函数

strlen()函数(C语言里也有这个函数),用以返回字符串的长度,字符串中首字符的位置是0而不是1(这个貌似和C语言里的用法不同),但是返回的长度都会在原来的基础上加1,因为字符串最后有0
strpos("某字符串","要检索的字符或文本")函数,用来检索字符串内指定的字符或文本,如果找到匹配,返回首个匹配的字符位置,如果没有,就返回false
实例:

<?php
echo strpos("Hello world!","world");
?>

代码的输出是6


运算符

算数运算符:+、-、*、/、%
赋值运算符:最基础的赋值运算符就是=,右侧赋给左侧
复合运算符:+=、-=、*=、/=、%=等等
字符串运算符:.(串接)、.=(串接赋值)
实例:

<?php
$a="Hello";
$b=$a." world!";
echo $b; //输出"Hello world!"
?>

自增/自减运算符:++$x、$xx++、--$x、$x-- (与C语言相似)
比较运算符:==、===、!=、<>、!=、!==、>、>=、<、<=
大部分都好理解例如 x>y 如果成立,就返回true
比较难理解的有===、!==
1.===是全等(完全相同)的意思,x===y,如果x等于y,且他们类型相同,则返回true
2.!==是不全等的意思,x!==y,如果x不等于y,或它们类型不同,则返回true
逻辑运算符:and、or、xor、&&、||、!
重点是xor(异或),其实我感觉它和C语言里的^(异或)很像,就是理解起来有点不同。
axorb,如果a和b有且仅有一个为true,则返回true
C语言中^是在二进制中按位异或,相同为0,不同为1,其实就是有且只有一个为1,返回1(相当于把true理解为1,false理解为0)

数组运算符,用于比较数组

  • 联合 x+y x和y的联合(不覆盖重复的键) 这个我不太懂什么意思
    == 相等 x==y 如果x和y有相同的键/值对,返回true

=== 全等 x===y 如果x和y有相同的键/值对,且顺序相同类型相同,返回true
!= 不等
<> 同上
!== 不全等 x!==y 如果x不全等于y,返回true


PHP条件语句

其实和C语言差不多,看了下,唯一不同的是elseif的运用,php中elseif是连在一起用的,C语言中else if是分开用的

switch语句

用法和C语言中的switch一样

循环语句

while
do while
for
foreach
前三个和C语言用法一样,foreach循环只适用于数组,并用于遍历数组中的每个键/值对
语法:

 foreach($array as $value)
 {
 要执行的代码;
 }

每进行依次循环,当前数组元素的值赋给$value变量(数组指针对逐一移动),在进行下一次循环时,就是数组中的下一个值


PHP函数

PHP本身有超过1000个内建函数,我们还可以自定义函数
自定义函数的声明以“function”开头
语法:

 <?php
 function functionname()
 {
 //要执行的代码;
 }
 ?>

PHP函数准则:

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

实例

 <?php
 function writename()
 {
     echo "Zhu Wen Hao";
 }
 echo "My name is ";
 writename():
 ?>

输出:My name is Zhu Wen Hao

函数也可以添加参数
通过参数向函数传递某个值,参数类似变量,参数被定义在括号内,可以添加任意多参数,用逗号隔开。
实例:

 function writename($name)
 {
     echo "My name if ".$name;
 }
 writename("Zhu Wen Hao");

输出:My name is Zhu Wen Hao

如需函数返回值,加上return语句
实例:

 function sum($x,$y)
 {
     $z=$x+$y;
     return $z;
 }
 echo "29 + 11 = ".sum(29,11);

输出:29 + 11 = 40


数组介绍

在PHP中,array()函数用于创建数组
PHP中有三种数组类型:

  1. 索引数组-带有数字索引的数组
  2. 关联数组-带有指定键的数组
  3. 多维数组-包含一个或多个数组的数组

索引数组
有两种创建索引数组的方法
索引是自动分配的(索引从0开始)
$beloved=array("herui","hr","HR");
或者手动分配索引
$belobed[0]="herui";
$belobed[0]="hr";
$belobed[0]="HR";

count()函数,获得数组的长度(元素数)
用count和for的结合就可以遍历索引数组,与C语言类似

关联数组
关联数组是使用你分配给数组的指定键的数组
也有两种创建关联数组的方法(同上)
$beloved=array("love"=>"HR","loved"=>"hr");

用foreach循环来遍历关联数组

 <?php
 $beloved=array("love"=>"HR","loved"=>"hr");
 foreach($beloved as $x=>$value){
     echo "key=".$x.",name=".$value;
     echo "<br/>";
 }
 ?>

输出:
key=love, name=HR
key=loved, name=hr


PHP表单

PHP中的$_get和$_post变量用来检索表单中的信息,比如用户输入
当处理HTML表单时,PHP能把来自HTML页面中的表单元素自动变成可供PHP脚本使用
$_get是通过URL参数传递到当前脚本的变量数组
$_post是通过 HTTP POST 传递到当前脚本的变量数组
通过GET方法从表单发送的信息对任何人都是可见的(所有变量名和值都显示在URL中),GET对发送信息的数量有限制,限制2000个字符
通过POST方法从表单发送的信息对其他人是不可见的(所有名称/值会被嵌入HTTP请求的主体中),并且对发送信息数量不限制,此外POST支持高阶功能,比如在服务器上传文件时进行multi-part二进制输入(这里我一脸懵逼完全不懂)
提示:开发者偏爱POST来发送表单数据,因为POST相对安全保密。
实例:

<!doctype html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>Title</title>
</head>
<body>
<form action="welcome.php" method="post">
Name:<input type="text" name="name"><br/>
E-mail:<input type="text" name="email"><br/>
<input type="submit">
</form>
</body>
</html>

这是一个简单的HTML表单,包含两个输入字段和一个提交按钮,当用户填写表单并点提交按钮后,表单数据会发送到名为"welcome.php"的PHP文件供处理,且表单数据是通过HTTP POST方法发送的
如需显示被提交的数据,可以用echo输出所有变量,"welcome.php"文件时这样的:

<!doctype html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>Title</title>
</head>
<body>
welcome <?php echo $_post["name"]; ?><br/>
your email address is : <?php echo $_post["email"]; ?>
</body>
</html>

好了PHP基础到这差不多就结束了,以上记录的仅仅是我所认为的重点,如果你有更多需求,可以前往菜鸟教程或其他站点学习。

注:我在简书上学习的,链接:https://www.jianshu.com/p/d62992b1ff2a

朱文豪
朱文豪 物来顺应 未来不迎 当时不杂 既过不恋

发表评论

已有 6 条评论
  1. 点赞,持续坚持下去!

    1. 嗯,我会努力的

  2. 网站内容还是挺不错的,谢谢博主。还有博客应该是WORDPRESS做的吧,感觉美观度还可以提高,谢谢。我自已是搞前端设计的,你的代码可以做精简一点。

    1. 谢谢你的建议,以后有能力了再改吧

  3. 好久没来了,都发现你都上大学了......
    改天加个SSL证书怎么样?

    1. 是啊,时间过得很快,转眼大学八分之一的时光过去了。另外不是很懂SSL,望指教!