1. 排序法:
冒泡法:从后向前依次比较相邻元素,弱发现逆序则交换位置,大的向前走,小的向后移动。在移动过程中设置;flag标志减少不必要的比较。
function BubbleSort(&$arr)
{
$temp=0;
for($i=0;$i<count($arr)-1;$i++)
{
for($j=0;$j<count($arr)-1-$i;$j++)
{
if($arr[$j]>$arr[$j+1])
{
$temp=$arr[$j];
$arr[$j]=$arr[$j+1];
$arr[$j+1]=$temp;
}
}
}
}
数组默认传递的是值,不是地址
选择排序法
插入排序法
快速排序法
二维数组:
$a=$array( $array(),$array() );
利用$_REQUEST获取的数据是不会保存在后台的,后面会学习的。
array_push('aa',array) //可以往一个数组中push一个值
一个页面可以有多个表单,多个表单提交到后台的时候,可以写一个隐藏表单在里面,在后台进行区分。
表单控件的默认值是=value的
<input type="hidden" value="thisVal" name="hid">
$Hid = &$_REQUEST['hid'];
echo $Hid; ===》thisVal
(object)
面向对象已经成为一种趋势;
单句的指令-->函数(多个指令)-->对象(函数/变量)
类是抽象的,代表一类事物。对象是具体的实际的。类是对象的模板,对象是类的实例化。
通过类创建一个对象(实例化一个对象/把类实例化)
类是抽象的,概念的,代表一类事物,比如人类
对象是具体的实际的,代表一个具体事物
类是对象的模板,对象是类的一个个体实例
类:
--创建类: class cat{
public $name;
public $age;
}
--成员属性<里面可以是任何东西>:是从植物中提取出来的。比如年龄等
--创建对象 $cat1 = new cat();可以没括号
如果一个文件是专门定义类的,则命名是:类名.class.php
当函数执行创建一个新栈,但是执行完成之后立马会关闭这个栈--》垃圾回收机制
给一个函数传递一个对象,实际上传递的是一个地址。
函数接受对象的时候传递的是值还是地址:
如果给函数传递的是基本数据类型:传递的是值;开辟的新栈调用完就消失了,所以没有机会改变这些值。如果希望传递地址,则在前面加上&就行。
变量在内存中的存在方式:
【1】
【2】
--成员方法:(比如人会跑步,计算等)也就是把一个函数写在了类当中
public function speak() // $p1->speak;
return 函数返回,一定要接受。谁调用我,我就返回给谁。
写面向对象的程序一般步骤是:先设计类(定属性、定成员方法) 然后根据类创建对象
对象内部调用属性的时候 $this->weight += $a;
MVC思想 model view control
接受数据 和数据运算 都分开写
--类的构造方法(给新出生的小孩起名字)
--
需求的提出:前面写对象的时候是在对象创建好以后再给对象的属性赋值。现在是在创建对象的时候就完成初始化值。
--
主要作用是完成对象的初始化。没有返回值,是被自动调用的。
--
public function__construct()
{ php5两种都支持 }//注意是两个下划线 在php4中是:public function 类名(){ }
--
$this
深层次理解就是被调用的对象的地址。只能在定义里面是使用
--
类里面只能有一个构造方法的
--
如果不写系统会默认一个空的默认方法
--
默认访问修饰符是public
--析构方法(php5)
--析构函数会到某个对象的所有引用都被删除或者当对象被显示销毁时执行
--
function __destruct(){ //释放资源操作}
--
主要作用:释放资源。比如释放数据库的链接,图片资源,或者销毁某个对象
--
调用时候:会自动的调用 ,当程序退出(进程结束)的时候 当一个对象成为垃圾对象的时候(就是没有任何变量在引用它)
--
调用顺序:栈后进先出 ,则析构方法调用的顺序也是先创建的后被销毁
--
系统调用 不传参数 一个类只有一个
常量在内存中的调用:
全局变脸在定义和赋值的时候要分开。在函数内部使用的时候还要申明一下
<?php
global $global_nums; //全局变量的使用
$global_nums = 0;
class play_games
{
public $name;
public $age;
public function __construct($n,$a) //构造函数初始化
{
$this->name =$n;
$this->age=$a;
}
public function add_plays() //成员方法
{
global $global_nums; //再次申明
$global_nums +=1;
echo $this->name.'加入了游戏当中<br/>';
}
}
$p1 = new play_games('anikin',12); //只是创建了人,但是不会玩游戏
$p1->add_plays(); //开始玩游戏
$p2 = new play_games('jack',10);
$p2->add_plays();
$p3 = new play_games('rose',20);
$p3->add_plays();
echo '总共'.$global_nums.'个人参与到了游戏当中';
?>
--类变量(静态变量) 本质上存放的是地址,则多个对象都可以访问这个地址
--需求:所有对象都共享一个变量 两种方法:全局变量 静态变量
--静态变量只能通过类访问,这个体现了封装性。面向对象的静态变量都放在类中。
--public static $num=0; 访问: 在类中访问 self::$nums +=1; 外面访问 类名::$nums;