★ PHP
.
路飞小朋友
这个作者很懒,什么都没留下…
展开
-
php异常处理
快速入门案例普通处理方法//两个串联开关,需要同时打开才能开灯,该方法扩展性比较差,如果是3个串联开关呢?function A(){ $res1 = power1(1); $res2 = power2(0); if ($res1 && $res2){ echo '成功打开'; }else{ echo '打开失败'; }}function power1($num){ if ($num == 1){原创 2020-10-22 16:09:22 · 243 阅读 · 0 评论 -
php错误处理
如果没有错误处理机制会怎样?文件没有打开,但仍然向下执行,输出了ok<?php$file = fopen('./aaa.php','r');echo 'ok';/*输出结果;Warning: fopen(./aaa.txt): failed to open stream: No such file or directory in F:\wamp\www\test.php on line 2ok*/添加错误处理机制使用file_exists()函数检查文件或文件夹是否存在,返回原创 2020-10-21 22:11:58 · 190 阅读 · 0 评论 -
php基础——数组排序与查找
PHP冒泡排序冒泡排序的思路?首先就是先比较相邻的两个元素,如果满足条件,就交换,否则不动。然后是再比较接下来的两个相邻的元素,然后满足条件就交换,否则依然不动。依次循环操作下去,最终一个元素,会固定在最下边代码示例// 冒泡排序function bubble_sort(&$arr) { $len = count($arr); // 循环对比的轮数 for ($i = 0; $i < $len -1; $i++) { //当前轮相邻元素原创 2020-05-14 09:07:19 · 198 阅读 · 0 评论 -
php基础——数组函数
sort 数组排序字符串数组先比较第一个字母的编码大小,小的排前面,如果第一个字母相同,则比较第二个字母,依次类推$farr = array('a','ab','b','bc','bcd');原创 2020-05-13 11:00:37 · 216 阅读 · 0 评论 -
php基础——数组基础
数组是一组键和值的集合,值可以是任何一种类型创建数组索引数组 :键为整数,键无特殊意义,自动分配键值,从0开始$arr = array("春","夏","秋","冬");print_r($arr); // Array ( [0] => 春 [1] => 夏 [2] => 秋 [3] => 冬 )关联数组 :键为字符串,键本身具有一定的意义,人工分配,如age – 年龄$arr = array("name"=>"小张", "age"=>"18");prin原创 2020-05-13 09:45:09 · 506 阅读 · 0 评论 -
php基础——变量作用域
内存角度如果没有变量指向数据,那数据就销毁(除了超全局和静态)局部变量,如果不人为unset()的话,函数调用结束,为函数开辟的栈销毁,原本函数栈中变量指向的数据不在有变量指向,也随之销毁全局变量,如果不人为unset()的话,脚本执行完毕主栈才销毁,主栈销毁,原本主栈中变量指向的数据不在有变量指向,也随之销毁超全局变量,与全局的区别就是即使在函数内,也可以直接用,无需global概念角度局部变量:函数内部有效全局变量:在函数外部有效(在函数内部通过global访问)超全局变量:在一个原创 2020-05-12 13:34:58 · 124 阅读 · 0 评论 -
php基础——递归函数
基本概念递归函数即自调用函数,在函数体内部直接或间接的自己调用自己函数体中会附加一个条件判断,以判断是否需要执行递归调用,并且在特定的条件下终止函数的递归递归详解代码示例function abc($n){ // 此处是传值赋值 if ($n>2){ abc(--$n); // $n = $n-1; abc($n) } echo $n,'<br>';}abc(4); // 2 2 3// 思考: 如果是 $n-- 会怎么?原创 2020-05-11 07:54:37 · 422 阅读 · 0 评论 -
php基础——进制转换
生活中常用10进制计算机常用2进制,8进制,16进制——————推的思路———————8进制, 前面加0代表8进制8进制转10进制echo 0123,"<br>"; // 8进制,从右到左3个位,分别以1顶1,以1顶8,以1顶64echo 1*3 + 2*8 + 1*64,"<br>"; // 将8进制转换为10进制10进制转8进制echo 23,"<br>";echo 027; // (16+7)16进制,前面加0x代表16进制, 0,1,2原创 2020-05-10 10:59:55 · 249 阅读 · 0 评论 -
php基础——文件引入
引入方式include ; include_oncerequire ; require_once主要区别include 和 require 除了处理错误的方式不同之外,在其他方面都是相同的require 如果引入的文件不存在,生成一个致命错误,在错误发生后脚本会停止执行include 如果引入的文件不存在,生成一个警告,在错误发生后脚本会继续执行_once 的作用:只引入1次,如果之前已经引用过,不再重复引用代码示例include("./sub.php"); /原创 2020-05-10 09:13:05 · 315 阅读 · 0 评论 -
php基础——函数
查询php所有内置函数get_defined_functions() 返回所有已定义函数的数组函数的意义提高代码的复用性,利于模块化编程,利于维护一段功能代码在项目中使用超过3次,就应该考虑将其封装成函数...原创 2020-05-09 08:44:18 · 234 阅读 · 0 评论 -
php基础——常量及魔术常量
应用场景网站开发中,需要一些全局性的值,如网站的根目录路径,希望设置后在开发中使用,而且不允许其他程序员修改一些基本的数据,是固定的,轻易不能修改,如,税率定义常量define不能用在类内,const可以在类内定义类常量常量定义后不能修改,也不能销毁定义常量后,该常量在页面任意处都可以访问 类似超级全局变量常量前面没有符号 $,一般大写,且必须是一个定值define("PI", 3.14);echo PI, "<br>"; // 常量前面不加$ 大写const原创 2020-05-08 18:39:25 · 176 阅读 · 0 评论 -
php基础——流程控制
顺序控制流程顺序就是自动的,不加任何控制的流程,从上到下执行分支控制(选择语句)if else选择if ( $a > $b ) { echo "a is bigger than b" ;} elseif ( $a == $b ) { echo "a is equal to b" ;} else { echo "a is smaller tha...原创 2020-05-07 21:12:43 · 300 阅读 · 0 评论 -
php基础——运算符
算术运算符加+ 减- 乘* 除/ 模% 取反-取模运算符的用法判断两个数是否可以整除取模运算时,结果正负只和被除数有关,上边是被除数使用 % 方式,来换行显示数据// 需求 每两个数据换行$arr = array(1,2,3,4,5,6);for ($i=0;$i<count($arr);$i++){ echo $arr[$i]; if (...原创 2020-05-07 08:47:21 · 449 阅读 · 0 评论 -
php基础——变量的传递方式
变量传递方式(非对象)非对象的变量是没有对象标识符的,标识符为对象特有的变量传值赋值$a = 'hello';$b = $a;if ($a===$b){ echo '$a===$b'; // $a===$b}变量引用赋值$a = 'hello';$b = &$a;延伸class Person{ public $name;}$p1 = ...原创 2020-05-06 21:21:12 · 470 阅读 · 0 评论 -
php基础——unset细节说明
在函数内unset()一个全局变量,则只是局部变量被销毁代码示例$a = 100;function test(){ global $a; $a = 10; unset($a);}test();echo $a; // 10内存图分析流程分析1.主栈$a 指向1002.test(),调用函数,在栈区新开辟一个新的空间新栈1,入新栈13.入栈后...原创 2020-05-06 17:47:27 · 286 阅读 · 0 评论 -
php基础——变量相关函数
is_set( )函数检测变量是否设置,并且不是 NULL如果变量存在并且值不是 NULL 则返回 TRUE,否则返回 FALSE$a = 10;if (isset($a)){ echo '$a存在,并且不为null';}else{ echo '$a不存在或者为null';}unset( )函数销毁指定的变量名unset无返回值unset的更多细节——对...原创 2020-05-06 16:20:45 · 181 阅读 · 0 评论 -
php面向对象——构造函数与析构函数
111原创 2020-04-26 20:32:54 · 386 阅读 · 0 评论 -
php面向对象——对象的传递方式
对象的传值赋值传值赋值 (赋值运算)将原变量的值拷贝到新变量中,所以改变其中一个并不影响另一个,适合于在密集循环中拷贝一些值例如大数组引用赋值,使用 $var= &$othervar 语法,引用赋值意味着两个变量指向了同一个数据,没有拷贝任何东西在php5中,一个对象变量并不是保存整个对象的值,而是保存一个对象标识符来访问真正的对象内容,因此,当对象作为参数传递,作为结果返回,或者...原创 2020-04-26 07:17:57 · 933 阅读 · 0 评论 -
php面向对象——类的自动加载
手动加载 linkinclude ; include_oncerequire ; require_onceinclude 和 require 除了处理错误的方式不同之外,在其他方面都是相同的require 如果引入的文件不存在,生成一个致命错误,在错误发生后脚本会停止执行include 如果引入的文件不存在,生成一个警告,在错误发生后脚本会继续执行_once 的作用:只引入1...原创 2020-04-25 07:42:24 · 187 阅读 · 0 评论 -
php面向对象——接口interface
什么是接口?先看抽象类:为了技术管理而设计:要求下级类需要去实现抽象类中抽象方法的“具体做法”abstract class 类名 { 属性1; 属性2; ..... 非抽象方法1; 非抽象方法2; ...... 抽象方法1; 抽象方法2; ......} 设想,将上述抽象类中“实在的成员”,删除,即删除那些非抽象的成员。则,自然该抽象类中,就...原创 2020-04-24 16:37:49 · 332 阅读 · 0 评论 -
php面向对象——抽象类
抽象类意义抽象类值得作用:一般充当一个模板或一个强制的接口用如下需求: Facebook 多国语言欢迎界面,不同国家的人,以不同国家语言欢迎面向过程的做法function fun($c){ if ($c == 'china'){ echo '你好'; }elseif ($c == 'english'){ echo 'hello'; ...原创 2020-04-24 11:25:15 · 133 阅读 · 0 评论 -
php面向对象——类常量与魔术常量
普通常量声明方式: define (‘常量名’,‘常量值’)声明后不能修改值,不能重新声明,也不能销毁声明常量后,该常量在页面任意处都可以访问 类似超级全局变量类常量类常量就是一个不可修改的静态属性声明方式:在类内用 const 常量名把在类中始终保持不变的值声明为类常量,声明后不能修改值,不能重新声明,也不能销毁常量的值必须是一个定值,不能是变量,类属性,数学运算的结果或函...原创 2020-04-21 09:52:34 · 172 阅读 · 0 评论 -
php面向对象——重写与重载
重写 override子类重写父类的同名方法PHP的类方法重写规则1、final修饰的类方法不可被子类重写重载 overload原创 2020-04-20 21:54:28 · 211 阅读 · 0 评论 -
php面向对象——魔术方法
$(document).ready(function () { alert('RUNOOB');});原创 2020-04-20 08:24:59 · 251 阅读 · 0 评论 -
php面向对象——final关键字
final关键字final可以修饰类和方法 不能修饰属性final修饰类 不能继承final class Human{}// Fatal error: Class Stu may not inherit from final class (Human)// 不能继承最终的类class Stu extends Human{}final修饰方法,可以继承,但此方法不允许重写...原创 2020-04-19 20:18:10 · 256 阅读 · 1 评论 -
php面向对象——单例模式
111原创 2020-04-19 09:26:22 · 274 阅读 · 0 评论 -
php面向对象——静态属性和方法
静态属性及方法的概念在属性前加 static 修饰,这种称为静态属性和静态方法静态属性和静态方法必须用类名::来调用类名::属性/方法名这种调用方式为静态调用类与对象在内存中分布了解各种类属性和方法的内存分布,是学会静态调用,this绑定的基础各种类属性和方法的内存分布普通属性复制到每个对象中所有方法当创建类时 class Human{}生成一个类的内存空间类内存...原创 2020-04-18 19:06:30 · 465 阅读 · 0 评论 -
PHP面向对象——this self parent总结
this绑定解析new一个对象时,对象内存中只复制了非静态属性,所有方法和静态属性还在类内存中当一个对象调用类中的方法时,该方法执行之前先完成一个绑定, $this —>绑定到调用此方法的对象class A { private $name='PHP'; public function showA() { print_r($this); //B Obj...原创 2020-04-17 22:16:42 · 144 阅读 · 0 评论 -
php面向对象——多态
什么是多态一个接口多种状态,就叫做多态不同型号的对象能通过一个统一的方法做到不同的事php中的多态php是弱类型动态语言php变量没有类型,你装什么变量都行,传参参数也没有强制类型,传什么参数都行对于php来说,不检测类型,其本身就是多态的,甚至变态// 同一操作(同一函数)不同的对象,有不同的结果// 这个例子以Java的概念来说,不算多态;但效果上来说,这个例子就是多态...原创 2020-04-18 21:09:12 · 232 阅读 · 0 评论 -
php面向对象——继承
继承概念以一个类为父类,另一个类作为其子类,子类在继承了父类属性/方法的基础上还可以进一步增添或修改,提高类代码复用性。继承写法php使用关键字 extends 来继承一个类,php不支持多继承例如:class Stu extends Human,Dog,Pig {} 错的!/*思考:1.继承了那些东西?2.子类可以做什么扩充?3.构造函数如何继承?4.私有属性方法如何继承?...原创 2020-04-18 21:08:05 · 355 阅读 · 0 评论 -
php面向对象——封装
封装概念通过权限修饰符,把某些属性封装在类内部,并通过指定接口来访问。private和public私有private属性/方法的调用只能在本类的{ }内公有public属性/方法的调用无限制封装举例调用某个公共方法时,该公共方法可能调用了内部多个方法,但调用者不需要知道内部的调用过程。借钱 < 借到500,但背后可能是拿现金+去银行去+砸锅卖铁凑齐的。封装mysq...原创 2020-04-18 20:28:41 · 377 阅读 · 0 评论 -
php面向对象——类与对象
菜鸟教程类和对象的概念动物 是一个抽象类,我们可以具体到一只狗跟一只羊,而狗跟羊就是具体的对象,他们有颜色属性,可以写,可以跑等行为状态。属性和方法和newnew 对象时申请内存,生成对象(属性集合)如果有构造函数,则执行返回该对象地址类属性关于属性值,可以声明属性并赋值,也可以声明属性先不赋值如果不赋值,则属性的初始值是 null在php的类属性中,属性值必须是一个"直...原创 2020-04-13 17:11:35 · 295 阅读 · 0 评论 -
php基础——static关键字
static 放在函数内部修饰变量静态变量在函数执行完后,变量值仍然保存,不销毁// 普通变量在函数中每次调用时,都会重新初始化function t(){ $a = 10; // 普通变量 $a++; return $a;}echo t(); // 11echo t(); // 11echo t(); // 11// static静态变量...原创 2020-04-13 11:50:33 · 140 阅读 · 0 评论 -
php函数
函数的定义格式function 函数名(参数1,参数2,n){ // 参数可以不写 执行语句; return; // 返回值可以不写 }函数传参方式传值赋值<?phpfunction fun($a){ // $a(内部)=$a(外部) 传值赋值 $a = $a + 1; // $a是函数内部的值,怎么变,和外部的$a无关 ...原创 2020-04-13 11:20:16 · 124 阅读 · 0 评论 -
php数组
创建数组索引数组 :键无特殊意义,自动分配键值,从0开始$arr = array("春","夏","秋","冬");print_r($arr); // Array ( [0] => 春 [1] => 夏 [2] => 秋 [3] => 冬 )关联数组 :键本身具有一定的意义,人工分配,如age – 年龄$arr = array("name"=>"小张",...原创 2020-04-13 11:18:35 · 186 阅读 · 0 评论 -
php运算符
赋值运算符$a = 3; // 这是赋值运算,有两个作用 1.把3赋给$a 2.返回运算结果即3// 我们可以拿一个变量接收返回值$ret = ($a=3);var_dump($ret); // 3算术运算符加+ 减- 乘* 除/ 模% 取反- 并置.$a = 10;$b = 0;echo $a/$b; // 报错 除数不能为零$a = 320000...原创 2020-04-12 19:58:07 · 207 阅读 · 1 评论 -
php常量
声明常量define("PI", 3.14);echo PI, "<br>"; // 常量前面不加$命名规范和变量一样 习惯上常量大写常量特点声明后不能修改值,不能重新声明,也不能销毁声明常量后,该常量在页面任意处都可以访问 类似超级全局变量PI = 3.15; define("PI", 3.15); unset(PI); // 全部报错 语法...原创 2020-04-12 19:51:44 · 124 阅读 · 0 评论 -
php变量
变量类型整形 浮点型 字符串 布尔 数组 对象 NULL变量检测isset() 函数用于检测变量是否存在 并且非 NULL。对于null,isset也返回falseunset() 函数用于销毁给定的变量。变量作用域四种不同的变量作用域:local,global,static,parameter定义在函数外部的就是全局变量,它的作用域从定义处一直到文件结尾。函数内定义的变量就是局部...原创 2020-04-12 17:31:44 · 152 阅读 · 0 评论 -
php基础知识大纲
弱类型语言PHP 是弱类型语言不需要声明该变量的数据类型,会根据变量的值,自动把变量转换为正确的数据类型。在强类型的编程语言中,我们必须在使用变量前先声明(定义)变量的类型和名称。学习一门语言,就是要学习他的变量、运算、控制。变量详细笔记变量类型: 整形 浮点型 字符串 布尔 数组 对象 NULL 资源变量检测: isset()函数用于检测变量是否存在 并且非 NULL。对于nul...原创 2020-04-12 15:48:22 · 365 阅读 · 0 评论