PHP基础

php可以嵌入在HTML语言中进行编写

基本语法

基本规则

php标记

<?php
//内容
?>

如果整个php文件中都是php代码的话,后面的 ?> 可以省略

指令分隔符; //每行php代码都要以;结尾

注释

单行注释//注释内容

多行注释/*注释内容*/

变量

php是弱类型,定义变量时不需要声明变量类型,输入$和变量名即可

双引号中的变量才可以输出值

变量命名规则

  1. 变量以$符号开始,后面跟着变量的名称;
  2. 变量名必须以字母或者下划线字符开始;
  3. 变量名只能包含字母、数字以及下划线(Az、09和_);
  4. 变量名不能包含空格;
  5. 变量名是区分大小写的($y和$Y是两个不同的变量)

页面输出

echo  输出单一类型,多个用逗号隔开
print_r() 输出符合类型,一般用于输出数组
var_dump() 打印数据详细信息

基础数据类型

  • String(字符串)
  • Integer(整型)
  • Float(浮点型)
  • Boolean(布尔型)
  • NULL(空)

String(字符串类型)

纯文本,可以将任何文本放在单引号和双引号中

<?php  
$name = 'han';
$str1 = "PHP is the best language!";
$str2 = "My name is $name.";
echo $str1;
echo "<br>";
echo $str2;
?>

Integer(整型)

正数或负数,可以指定进制为:十进制,十六进制(0x前缀),八进制(0前缀)

<?php
$num1=20;
$num2=-20;
$num3=024;
$num4=0x14;

var_dump($num1);
echo "<br>";
var_dump($num2);
echo "<br>";
var_dump($num3);
echo "<br>";
var_dump($num4);
?>

Float(浮点型)

<?php  
$f1 = 20.123;
$f2 = 2.0123e1; // 科学计数法表示 2.0123*10^1

var_dump($f1);
var_dump($f2);
?>

Boolean(布尔类型)

大小写都可以

<?php  
$a = true;
$b = 1;
$c = 2;
var_dump($a);
var_dump($b == $c);
?>

NULL(空)

变量为空

<?php  
$n = null;
var_dump($n);
?>

其他数据类型

复合数据类型

  • Array(数组)
  • Object(对象)

特殊数据类型

  • Resource(资源)

字符串处理

字符串运算符

并置运算符.,用于拼接两个字符串

<?php  
$str1 = "hello";
$str2 = "world";
echo $str1." ".$str2; // $str1拼接上一个空格,再拼接上$str2
?>

内置字符串处理函数

strlen()字符串长度

<?php  
$str1 = "hello";
$str2 = "world";
$str3 = $str1." ".$str2; // $str1拼接上一个空格,再拼接上$str2

echo strlen($str1);
echo "<br>";
echo strlen($str2);
echo "<br>";
echo strlen($str3);
?>

strrev()反转字符串

<?php  
$str = "han";
echo strrev($str);
?>

字符串大小写转换

  • strtoupper():全部转为大写
  • strtolower():全部转为小写
<?php  
$str="Hello World";
echo strtoupper($str);
echo "<br>";
echo strtolower($str);
?>

strpos()字符串查找

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

字符串中首字符的位置是 0 而不是 1

<?php  
$str="hello world";
echo strpos($str,'world');
?>
//h为0,往后依次递增

str_replace()字符串替换

用一些字符串替换字符串中的另一些字符

<?php
echo str_replace("world", "Kitty", "hello world!");
?>
//str_replace(原字符,替换后的字符,字符串)

对字符串中的单词计数

<?php
echo str_word_count("Hello world!"); // 输出 2
?>

数字处理

算数运算符

<?php
$x=12;
$y=5;
echo "$x+$y=".($x+$y)."<br>";
echo "$x-$y=".($x-$y)."<br>";
echo "$x*$y=".($x*$y)."<br>";
echo "$x/$y=".($x/$y)."<br>";
echo "$x%$y=".($x%$y)."<br>";
?>

赋值运算符

递增/递减运算符

数组

Array,在单个变量中存储多个值的特殊变量

php中的三种数组

  • 索引数组(数值数组) - 带有数字索引的数组
  • 关联数组 - 带有指定键的数组
  • 多维数组 - 包含一个或多个数组的数组

数值(索引)数组

创建方式

  • 自动分配 ID 键(ID 键总是从 0 开始):
$cars=array("Volvo","BMW","Toyota");
  • 人工分配 ID 键:
$cars[0]="Volvo";
$cars[1]="BMW";
$cars[2]="Toyota";

创建空数组

$arr = [];
$arr = array();

创建数组时就对数组赋值

$fruits = ['apple','orange','banana'];
$fruits = array('apple','orange','banana');

数组元素的类型可以不一样

$test=[1,'test'];

使用数组

获取元素

<?php 
$arr=array('apple','orange','banana');
echo "my favorite fruit is $arr[0] ";
?>

添加元素

<?php
$arr=array('apple','orange','banana');
print_r($arr);
echo "<br>";
$arr[]='cherry';
print_r($arr);
?>

count()获取数组长度

count() 函数用于返回数组的长度(元素数)

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

in_array()查询数组是否包含某个元素

<?php
$arr = array('apple', 'orange', 'banana');
if (in_array('apple', $arr)) {
echo "apple in array.";
}
?>

遍历

<?php
$cars=array("apple","orange","banana");
$arrlength=count($cars);

for($x=0;$x<$arrlength;$x++) {
echo $cars[$x];
echo "<br>";
}
?>

关联数组

关联数组是使用您分配给数组的指定的键的数组

创建方式

$age=array("Bill"=>"35","Steve"=>"37","Elon"=>"43");

$age['Bill']="63";
$age['Steve']="56";
$age['Elon']="47";

获取元素

关联数组相当于索引数组中的索引被替换为我们所分配的键值,我们可以通过键值来取到数组中的元素

<?php
$age=array("Bill"=>"63","Steve"=>"56","Elon"=>"47");
echo "Elon is " . $age['Elon'] . " years old.";
?>

遍历

<?php
$age=array("Bill"=>"63","Steve"=>"56","Elon"=>"47");

foreach($age as $x=>$x_value) {
echo "Key=" . $x . ", Value=" . $x_value;
echo "<br>";
}
?>

函数

php函数

  • 内置函数
  • 用户自定义函数

创建用户自定义函数

function functionName() {
被执行的代码;
}

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

函数名对大小写不敏感。

<?php
function sayHi() {
echo "Hello world!";
}

sayhi(); // 调用函数
?>

传递参数

参数在括号内部,有多个参数时直接用逗号隔开

<?php
function familyName($fname,$year) {
echo "$fname Zhang. Born in $year <br>";
}

familyName("Li","1975");
familyName("Hong","1978");
familyName("Tao","1983");
?>

设置默认参数值

<?php
function setHeight($minheight=50) {
echo "The height is : $minheight <br>";
}

setHeight(350);
setHeight(); // 将使用默认值 50
setHeight(135);
setHeight(80);
?>

返回值

<?php
function sum($x,$y) {
$z=$x+$y;
return $z;
}

echo "5 + 10 = " . sum(5,10) . "<br>";
echo "7 + 13 = " . sum(7,13) . "<br>";
echo "2 + 4 = " . sum(2,4);
?>

流程控制

同C,JS一样

foreach遍历数组

foreach ($array as $value)
{
要执行代码;
}
//每进行一次循环,当前数组元素的值就会被赋值给 $value 变量(数组指针会逐一地移动),在进行下一次循环时,您将看到数组中的下一个值。
例子
<?php
$grades = array("张三"=>90,"李四"=>85,"小明"=>50);
foreach ($grades as $value){
echo $value . "<br>";
}
?>
foreach ($array as $key => $value)
{
要执行代码;
}
//每一次循环,当前数组元素的键与值就都会被赋值给 $key 和 $value 变量(数字指针会逐一地移动),在进行下一次循环时,你将看到数组中的下一个键与值。
例子
<?php
header('Content-Type: text/html; charset=utf-8'); // 设置编码格式
$grades = array("张三"=>90,"李四"=>85,"小明"=>50);
foreach ($grades as $key => $value){
echo "$key => $value" . "<br>";
}
?>

文件包含

php使用文件包含来调用文件

php文件包含函数

PHP包含文件函数include、include_once、require、require_once区别和总结-CSDN博客

  1. include()

当使用该函数包含文件时,只有代码执行到include()函数时才将文件包含进来,发生错误时只给出一个警告,继续向下执行。

  1. include_once()

功能与include()相同,区别在于当重复调用同一文件时,程序只调用一次。

  1. require()

require()与include()的区别在于require()执行如果发生错误,函数会输出错误信息,并终止脚本的运行。

  1. require_once()

功能与require()相同,区别在于当重复调用同一文件时,程序只调用一次。

类和对象

创建类

创建对象之前要先定义对应的类

class Class_name {
var $var1;
var $var2;
function myfunc1 ($arg1, $arg2) {
code;
}
}

类使用class关键字后加上类名定义。

类名后的一对大括号{}内可以定义属性和方法。

类的属性使用var来声明,属性也可以初始化值。

方法定义类似PHP函数的定义,但类方法只能通过该类及其实例化的对象访问。

<?php
class Person{
// 声明属性
var $name;
var $age;

// 声明方法
function hello(){
echo "hello, my friend!\n";
echo "My name is $this->name, my age is $this->age";
}
}
?>

创建和使用对象

类创建后,使用new运算符来实例化该类的对象

// 实例化对象  
$han = new Person();

访问对象属性和方法

// 对象属性赋值  
$han->name = "han";
$han->age = 18;
// 对象调用方法
$han->hello();

tips

$id=$_GET['id'] ?? '1';
将赋值的id传给id变量,如果为空,则id=1