PHP 编程常用知识速查

PHP 编程常用知识速查一 关键字 一 数据类型 1 bool 布尔类型 只有 true 和 false 两个值 常用于逻辑判断 例如 isValid true if isValid echo 条件为真 2

大家好,欢迎来到IT知识分享网。

PHP 编程常用知识速查

一、关键字

(一)数据类型

1. bool :布尔类型,只有 true false 两个值,常用于逻辑判断。例如: $isValid = true; if ($isValid) { echo “条件为真”; } 。

2. int :整数类型,可以表示正整数、负整数和零。如: $age = 25; $count = -10;

3. float double ):浮点数类型,用于存储小数数值。例如: $pi = 3.14159; $price = 9.99; 。

4. string :字符串类型,用于存储文本数据。可以使用单引号或双引号 定义。单引号字符串中的变量不会被解析,双引号字符串中的变量会被替换为其值。例如: $name = “Alice”; $greet1 = ‘Hello, $name!’; // 输出:Hello, $name! $greet2 = “Hello, $name!”; // 输出:Hello, Alice!

5. array :数组类型,能存储多个不同类型的值。可使用 array() 函数或简写的方括号 [] 创建。例如: $fruits = array(“apple”, “banana”, “cherry”); $numbers = [1, 2, 3]; $mixed = [“apple”, 1, true];

6. object :对象类型,基于类创建的实例,用于面向对象编程。例如:

class Dog {

public $name;

public function __construct($name) {

$this->name = $name;

}

public function bark() {

echo $this->name. ” is barking!”;

}

}

$myDog = new Dog(“Buddy”);

$myDog->bark();

1. null :表示变量没有值或被显式设置为空。如: $emptyVar = null; if (is_null($emptyVar)) { echo “变量为空”; }

2. resource :资源类型,代表外部资源,如数据库连接、文件句柄等。例如: $dbConnection = mysqli_connect(“localhost”, “username”, “password”, “database”); // $dbConnection 是资源类型

(二)流程控制

1. if :条件判断语句,根据条件表达式的真假执行相应的代码块。例如: if ($score >= 60) { echo “及格”; }

2. else :与 if 配合使用,当 if 条件为假时执行的代码块。如: if ($age < 18) { echo “未成年人”; } else { echo “成年人”; }

3. elseif :用于添加多个条件分支,在多个条件判断中依次检查。例如: if ($score >= 90) { echo “优秀”; } elseif ($score >= 80) { echo “良好”; } elseif ($score >= 60) { echo “及格”; } else { echo “不及格”; }

4. switch :多分支选择语句,根据表达式的值选择执行不同的 case 分支。例如:

$day = “Tuesday”;

switch ($day) {

case “Monday”:

echo “星期一”;

break;

case “Tuesday”:

echo “星期二”;

break;

default:

echo “其他日期”;

}

1. case :在 switch 语句中定义具体的分支情况。

2. break :用于跳出当前的 switch 语句或循环结构( for while do-while ),防止继续执行后续不必要的代码。

3. continue :跳过本次循环中剩余的代码,直接进入下一次循环。例如:

for ($i = 0; $i < 5; $i++) {

if ($i % 2 == 0) {

continue;

}

echo $i; // 只输出 1, 3

}

1. for :常用于已知循环次数的循环结构,基本形式为 for (初始化表达式; 条件表达式; 迭代表达式) { // 循环体 } 。例如: for ($i = 0; $i < 3; $i++) { echo $i; }

2. while :只要条件表达式为真,就会重复执行循环体中的代码。如: $i = 0; while ($i < 5) { echo $i; $i++; }

3. do :与 while 构成 do-while 循环,先执行一次循环体,然后再判断条件表达式。例如:

$i = 0;

do {

echo $i;

$i++;

} while ($i < 5);

1. return :从函数中返回一个值,可以是基本数据类型、数组、对象等,同时结束函数的执行。例如:

function add($a, $b) {

return $a + $b;

}

$result = add(3, 4);

(三)函数与类

1. function :用于定义函数,函数是可重复使用的代码块,可以接受参数并返回值。例如: function sayHello($name) { return “Hello, $name!”; }

2. class :用于定义类,类是面向对象编程的基础,包含属性(变量)和方法(函数)。例如:

class Car {

public $brand;

public function drive() {

echo “驾驶着一辆 {$this->brand} 汽车。”;

}

}

1. extends :用于类的继承,表示一个类继承另一个类的属性和方法,并且可以重写或扩展这些方法。如:

class SportsCar extends Car {

public function speedUp() {

echo “跑车正在加速。”;

}

}

1. implements :类实现接口,确保类中实现接口所定义的所有抽象方法。例如:

interface Shape {

public function getArea();

}

class Rectangle implements Shape {

private $width;

private $height;

public function __construct($width, $height) {

$this->width = $width;

$this->height = $height;

}

public function getArea() {

return $this->width * $this->height;

}

}

1. public :访问修饰符,修饰的属性或方法可以在类的内部和外部被访问。

2. private :访问修饰符,被其修饰的属性或方法只能在类的内部被访问,外部无法直接访问。

3. protected :访问修饰符,修饰的属性或方法可以在类本身及其子类中被访问,但在类外部不能直接访问。

4. static :用于修饰类的属性或方法,表示它们属于类而不是类的实例,可以通过类名直接访问。例如:

class Math {

static public function subtract($a, $b) {

return $a – $b;

}

}

$result = Math::subtract(5, 3);

1. self :在类的内部,用于引用类本身,通常用于访问类的静态属性或方法。如:

class Counter {

static public $count = 0;

static public function increment() {

self::$count++;

}

}

1. parent :在子类中,用于访问父类的属性或方法。例如:

class ChildClass extends ParentClass {

public function someMethod() {

parent::someMethod(); // 调用父类的 someMethod 方法

// 子类的其他代码

}

}

1. abstract :用于定义抽象类或抽象方法。抽象类不能被实例化,抽象方法只有声明没有实现,子类必须实现抽象类中的抽象方法。例如:

abstract class Animal {

abstract public function speak();

}

class Cat extends Animal {

public function speak() {

echo “喵喵喵”;

}

}

1. final :修饰类时,该类不能被继承;修饰方法时,该方法不能被重写。如:

final class SpecialClass {

// 类的代码

}

class AnotherClass extends SpecialClass { // 会报错,不能继承 final 类

}

(四)其他

1. namespace :定义命名空间,用于组织代码,避免不同类、函数、常量等的命名冲突。例如: namespace MyApp\Utils; class Helper { // 类的代码 }

2. use :导入命名空间中的类、函数或常量,使它们在当前命名空间中可用,也可以使用别名来简化引用。如: use MyApp\Utils\Helper as MyHelper; $obj = new MyHelper();

3. global :在函数内部声明使用全局变量,函数默认情况下不能直接访问全局作用域中的变量,使用 global 关键字可以将全局变量引入函数作用域。例如:

$globalVariable = 10;

function myFunction() {

global $globalVariable;

$globalVariable++;

}

myFunction();

echo $globalVariable;

1. isset :检测变量是否已设置并且其值不是 null ,返回 true 或 false 。如: if (isset($userInput)) { // 变量已设置的处理代码 }

2. unset :用于销毁指定的变量,释放其占用的内存。例如: $testVariable = “Some value”; unset($testVariable);

3. require :包含并运行指定的 PHP 文件。如果文件不存在,会产生一个致命错误并停止脚本的执行。例如: require “config.php”;

4. require_once :功能与 require 类似,但确保指定的文件只被包含一次,避免重复包含导致的问题。例如: require_once “database.php”;

5. include :包含指定的 PHP 文件,如果文件不存在,会产生一个警告,但脚本会继续执行。例如: include “header.php”;

6. include_once :与 include 类似,保证文件只被包含一次。例如: include_once “footer.php”;

7. yield :用于生成器函数中,生成器是一种特殊的迭代器,可以按需生成值,而不是一次性生成所有值,节省内存。例如:

function numberGenerator() {

for ($i = 0; $i < 5; $i++) {

yield $i;

}

}

$generator = numberGenerator();

foreach ($generator as $number) {

echo $number;

}

二、常用函数

(一)字符串处理

1. strlen($string) :返回字符串的长度(字节数),在 UTF-8 编码下,一个汉字通常占 3 个字节。如: $length = strlen(“你好,世界”);

2. strpos($haystack, $needle, $offset = 0) :在 $haystack 字符串中查找 $needle 子字符串首次出现的位置,从 $offset 位置开始查找,返回位置索引(从 0 开始),如果未找到则返回 false 。例如: $position = strpos(“Hello, World”, “World”, 7);

3. substr($string, $start, $length = null) :从字符串中截取子字符串, $start 是起始位置, $length 是可选的截取长度。如: $substring = substr(“Hello, World”, 7, 5);

4. str_replace($search, $replace, $subject, &$count = null) :在 $subject 字符串中查找 $search 子字符串,并将其替换为 $replace 字符串, $count 是可选参数,用于记录替换的次数。例如: $newString = str_replace(“World”, “PHP”, “Hello, World”, $count);

5. strtolower($string) :将字符串转换为小写形式。如: $lowercase = strtolower(“HELLO, WORLD!”);

6. strtoupper($string) :将字符串转换为大写形式。如: $uppercase = strtoupper(“hello, world!”);

7. explode($delimiter, $string, $limit = null) :使用 $delimiter 分割 $string 字符串,返回一个数组。 $limit 是可选参数,限制分割后的数组元素个数。例如: $array = explode(“,”, “apple,banana,cherry”);

8. implode($glue, $pieces) :将数组 $pieces 中的元素连接成一个字符串,使用 $glue 作为连接符。例如: $joinedString = implode(“-“, [“apple”, “banana”, “cherry”]);

9. trim($str, $character_mask = null) :去除字符串 $str 两端的空白字符或指定字符。例如: $trimmed = trim(” Hello, World! “);$trimmed = trim(“—Hello, World!—“, “-“);

10. ucfirst($string) :将字符串的首字母转换为大写。如: $newString = ucfirst(“hello, world”);

11. ucwords($string) :将字符串中每个单词的首字母转换为大写。如: $newString = ucwords(“hello, world”);

(二)数组处理

1. count($array, $mode = COUNT_NORMAL) :计算数组中的元素个数, $mode 是可选参数, COUNT_NORMAL 是默认模式,不递归计算多维数组; COUNT_RECURSIVE 会递归计算多维数组的所有元素个数。例如: $elementCount = count([1, 2, 3]);

2. array_push(&$array, $value1, $value2, …) :将一个或多个值添加到数组的末尾,返回新数组的元素个数。例如: $myArray = [1]; array_push($myArray, 2, 3);

3. array_pop(&$array) :删除并返回数组的最后一个元素。例如: $lastElement = array_pop([1, 2, 3]);

4. array_shift(&$array) :删除并返回数组的第一个元素。例如: $firstElement = array_shift([1, 2, 3]);

5. array_unshift(&$array, $value1, $value2, …) :将一个或多个值添加到数组的开头,返回新数组的元素个数。例如: $myArray = [2, 3]; array_unshift($myArray, 1);

6. in_array($needle, $haystack, $strict = false) :检查 $needle 值是否存在于 $haystack 数组中, $strict true 时进行严格类型检查。例如: if (in_array(“apple”, [“apple”, “banana”], false)) { // 代码块 }

7. array_keys($array, $value = null, $strict = false) :返回数组的键名,如果指定了 $value ,则返回值为 $value 的键名数组。例如: $keys = array_keys([“name” => “Alice”, “age” => 25]);

8. array_values($array) :返回数组的所有值,重新索引数组(键名从 0 开始)。例如: $values = array_values([“name” => “Alice”, “age” => 25]);

9. array_merge($array1, $array2, …) :合并一个或多个数组,返回合并后的新数组。如果数组的键名相同,后面的数组会覆盖前面数组的键值。例如: $mergedArray = array_merge([1 => “a”], [2 => “b”], [1 => “c”]);

10. array_slice($array, $offset, $length = null, $preserve_keys = false) :从数组中取出一段元素, $offset 是起始位置, $length 是可选的长度, $preserve_keystrue 时保留原数组的键名。例如: $slicedArray = array_slice([1, 2, 3, 4, 5], 2, 2);

11. array_filter($array, $callback = null, $flag = 0) :用回调函数过滤数组中的元素, $callback 是可选的回调函数, $flag 用于指定回调函数的调用方式。当 $callback null 时,会过滤掉数组中 false 的值(包括 false0“”null[] 等)。例如:

$array = [1, 0, false, true, “”, “hello”];

// 只保留布尔值为 true 的元素

$filteredArray = array_filter($array, “boolval”);

print_r($filteredArray);

// 不使用回调函数,过滤掉 false 的值

$filteredArrayWithoutCallback = array_filter($array);

print_r($filteredArrayWithoutCallback);

(三)文件处理

1. fopen($filename, $mode, $include_path = false, $context = null) :打开一个文件或 URL,返回一个文件指针。 $mode 表示打开模式,常见的有:

r :以只读方式打开,文件指针指向文件开头。

w :以写入方式打开,若文件存在则清空内容,若不存在则创建新文件。

a :以追加方式打开,文件指针指向文件末尾,若文件不存在则创建新文件。

x :创建新文件并以写入方式打开,若文件已存在则返回 false

例如: $filePointer = fopen(“test.txt”, “r”);

2. fread($handle, $length) :从文件指针 $handle 指向的文件中读取最多 $length 个字节的数据,返回读取的内容。例如:

$filePointer = fopen(“test.txt”, “r”);

if ($filePointer) {

$content = fread($filePointer, filesize(“test.txt”));

fclose($filePointer);

echo $content;

}

1. fwrite($handle, $string, $length = null) :将字符串 $string 写入文件指针 $handle 指向的文件中, $length 是可选参数,指定写入的字节数。若不指定 $length ,则写入整个字符串。例如:

$filePointer = fopen(“test.txt”, “w”);

if ($filePointer) {

fwrite($filePointer, “这是写入的内容。”);

fclose($filePointer);

}

1. fclose($handle) :关闭打开的文件指针,释放资源。在对文件操作完成后,务必使用该函数关闭文件。如: $filePointer = fopen(“test.txt”, “r”); // 进行文件读取操作 fclose($filePointer);

2. file_exists($filename) :检查指定的文件或目录是否存在,存在返回 true ,否则返回 false 。例如: if (file_exists(“test.txt”)) { echo “文件存在”; } else { echo “文件不存在”; }

3. is_file($filename) :判断指定的 $filename 是否为一个文件,是则返回 true ,否则返回 false 。例如: if (is_file(“test.txt”)) { echo “这是一个文件”; }

4. is_dir($filename) :判断指定的 $filename 是否为一个目录,是则返回 true ,否则返回 false 。例如: if (is_dir(“myfolder”)) { echo “这是一个目录”; }

5. file_get_contents($filename, $use_include_path = false, $context = null, $offset = -1, $length = null) :将整个文件内容读入一个字符串, $offset$length 是可选参数,用于指定读取的起始位置和长度。例如: $fileContent = file_get_contents(“test.txt”); echo $fileContent;

6. file_put_contents($filename, $data, $mode = FILE_USE_INCLUDE_PATH, $context = null) :将数据 $data 写入文件。如果文件不存在则创建文件,如果存在则覆盖原有内容。 $mode 是可选参数,用于指定写入模式。例如: file_put_contents(“test.txt”, “新写入的数据”);

三、常用类

(一) DateTime 类:处理日期和时间

1. new DateTime() :创建当前日期时间对象。例如: $dateTime = new DateTime(); echo $dateTime->format(‘Y-m-d H:i:s’);

2. format(‘Y-m-d H:i:s’) :按指定格式输出日期时间。常用的格式字符有:

▷ Y :四位数的年份。

▷ m :两位数的月份(01 – 12)。

▷ d :两位数的日期(01 – 31)。

▷ H :24 小时制的小时数(00 – 23)。

▷ i :分钟数(00 – 59)。

▷ s :秒数(00 – 59)。

例如: $dateTime = new DateTime(); echo $dateTime->format(‘Y 年 m 月 d 日 H:i:s’);

3. modify(‘+1 week’) :修改日期时间,可以进行各种时间计算。例如:

$dateTime = new DateTime();

$dateTime->modify(‘+1 week’); // 日期加一周

echo $dateTime->format(‘Y-m-d’);

$dateTime->modify(‘-2 days’); // 日期减两天

echo $dateTime->format(‘Y-m-d’);

(二) PDO (PHP Data Objects)类:数据库访问,统一接口操作不同数据库

1. new PDO(‘数据库连接字符串’, ‘用户名’, ‘密码’) :创建数据库连接对象。例如,连接 MySQL 数据库:

try {

$pdo = new PDO(‘mysql:host=localhost;dbname=mydb’, ‘username’, ‘password’);

$pdo->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);

} catch (PDOException $e) {

echo “数据库连接错误: “. $e->getMessage();

}

1. setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION) :设置错误模式为抛出异常,这样在数据库操作出错时会抛出 PDOException 异常,便于错误处理。

2. prepare(‘SQL语句’) :准备 SQL 语句,用于预处理查询,提高安全性和性能。例如:

$stmt = $pdo->prepare(‘SELECT * FROM users WHERE username = :username’);

$username = “admin”;

$stmt->bindParam(‘:username’, $username, PDO::PARAM_STR);

1. execute() :执行 SQL 语句。例如: $stmt->execute();

2. fetchAll(PDO::FETCH_ASSOC) :获取查询结果,以关联数组的形式返回。例如:

$stmt->execute();

$result = $stmt->fetchAll(PDO::FETCH_ASSOC);

foreach ($result as $row) {

echo $row[‘username’]. ” “. $row[’email’]. “<br>”;

}

(三) SplDoublyLinkedList 类:双向链表数据结构

1. push($value) :在链表尾部添加元素。例如:

$list = new SplDoublyLinkedList();

$list->push(“apple”);

$list->push(“banana”);

1. unshift($value) :在链表头部添加元素。例如: $list->unshift(“cherry”);

2. pop() :移除并返回链表尾部元素。例如: $lastElement = $list->pop(); echo $lastElement;

四、常见错误和异常类型

(一)错误类型

1. E_ERROR :致命错误,会导致脚本终止执行。例如语法错误、内存分配失败等情况会产生此类错误。

2. E_WARNING :警告错误,不会终止脚本的执行,但表示脚本中存在一些可能导致问题的情况。例如文件打开失败(但脚本会继续执行后续代码)。

3. E_PARSE :语法解析错误,在脚本解析阶段发生,通常是由于代码语法不正确导致的。

4. E_NOTICE :通知错误,通常表示一些不太重要的信息,比如使用了未定义的变量(在默认配置下可能不会显示,可通过配置 error_reporting 来控制是否显示)。

(二)异常类型

1. Exception :所有异常的基类,用于捕获和处理各种异常情况。使用 try-catch 块来捕获和处理异常,例如:

try {

// 可能抛出异常的代码

$result = 10 / 0; // 会抛出 DivisionByZeroError 异常

} catch (Exception $e) {

echo “发生异常: “. $e->getMessage();

}

1. PDOException :在使用 PDO 进行数据库操作时,如果出现错误(如连接数据库失败、SQL 语句执行错误等),会抛出 PDOException 异常。例如:

try {

$pdo = new PDO(‘mysql:host=localhost;dbname=nonexistentdb’, ‘username’, ‘password’);

} catch (PDOException $e) {

echo “数据库连接异常: “. $e->getMessage();

}

免责声明:本站所有文章内容,图片,视频等均是来源于用户投稿和互联网及文摘转载整编而成,不代表本站观点,不承担相关法律责任。其著作权各归其原作者或其出版社所有。如发现本站有涉嫌抄袭侵权/违法违规的内容,侵犯到您的权益,请在线联系站长,一经查实,本站将立刻删除。 本文来自网络,若有侵权,请联系删除,如若转载,请注明出处:https://haidsoft.com/182602.html

(0)
上一篇 2025-07-06 11:33
下一篇 2025-07-06 11:45

相关推荐

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注微信