php(5)--数组和oop

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
面向对象已经成为一种趋势;
单句的指令-->函数(多个指令)-->对象(函数/变量)

是抽象的,代表一类事物。对象是具体的实际的。类是对象的模板,对象是类的实例化。

php(5)--数组和oop - 眷恋天空的驴 - Web---我要做一个好孩子,从明天起。  通过类创建一个对象(实例化一个对象/把类实例化)
php(5)--数组和oop - 眷恋天空的驴 - Web---我要做一个好孩子,从明天起。  类是抽象的,概念的,代表一类事物,比如人类
php(5)--数组和oop - 眷恋天空的驴 - Web---我要做一个好孩子,从明天起。  对象是具体的实际的,代表一个具体事物
php(5)--数组和oop - 眷恋天空的驴 - Web---我要做一个好孩子,从明天起。  类是对象的模板,对象是类的一个个体实例

类:
--创建类: class cat{
  public  $name;
  public  $age;
                               }

--成员属性<里面可以是任何东西>:是从植物中提取出来的。比如年龄等
   --创建对象   $cat1 = new cat();可以没括号

如果一个文件是专门定义类的,则命名是:类名.class.php
php(5)--数组和oop - 眷恋天空的驴 - Web---我要做一个好孩子,从明天起。  当函数执行创建一个新栈,但是执行完成之后立马会关闭这个栈--》垃圾回收机制

php(5)--数组和oop - 眷恋天空的驴 - Web---我要做一个好孩子,从明天起。 给一个函数传递一个对象,实际上传递的是一个地址。
    函数接受对象的时候传递的是值还是地址:
    php(5)--数组和oop - 眷恋天空的驴 - Web---我要做一个好孩子,从明天起。
 
php(5)--数组和oop - 眷恋天空的驴 - Web---我要做一个好孩子,从明天起。  如果给函数传递的是基本数据类型:传递的是值;开辟的新栈调用完就消失了,所以没有机会改变这些值。如果希望传递地址,则在前面加上&就行。
php(5)--数组和oop - 眷恋天空的驴 - Web---我要做一个好孩子,从明天起。
 
变量在内存中的存在方式:
【1】
  php(5)--数组和oop - 眷恋天空的驴 - Web---我要做一个好孩子,从明天起。
【2】
 
php(5)--数组和oop - 眷恋天空的驴 - Web---我要做一个好孩子,从明天起。
 

--成员方法:(比如人会跑步,计算等)也就是把一个函数写在了类当中
  public function speak()    //  $p1->speak;
  return 函数返回,一定要接受。谁调用我,我就返回给谁


写面向对象的程序一般步骤是:先设计类(定属性、定成员方法)  然后根据类创建对象
对象内部调用属性的时候 $this->weight += $a;

    MVC思想 model  view control
    接受数据 和数据运算 都分开写

--类的构造方法(给新出生的小孩起名字)
   -- php(5)--数组和oop - 眷恋天空的驴 - Web---我要做一个好孩子,从明天起。 需求的提出:前面写对象的时候是在对象创建好以后再给对象的属性赋值。现在是在创建对象的时候就完成初始化值。
  -- php(5)--数组和oop - 眷恋天空的驴 - Web---我要做一个好孩子,从明天起。 主要作用是完成对象的初始化。没有返回值,是被自动调用的。
  -- php(5)--数组和oop - 眷恋天空的驴 - Web---我要做一个好孩子,从明天起。 public function__construct() { php5两种都支持 }//注意是两个下划线  在php4中是:public function 类名(){  }
  -- php(5)--数组和oop - 眷恋天空的驴 - Web---我要做一个好孩子,从明天起。 $this  深层次理解就是被调用的对象的地址。只能在定义里面是使用
  -- php(5)--数组和oop - 眷恋天空的驴 - Web---我要做一个好孩子,从明天起。 类里面只能有一个构造方法的
  -- php(5)--数组和oop - 眷恋天空的驴 - Web---我要做一个好孩子,从明天起。 如果不写系统会默认一个空的默认方法
  -- php(5)--数组和oop - 眷恋天空的驴 - Web---我要做一个好孩子,从明天起。 默认访问修饰符是public

--析构方法(php5)
   --析构函数会到某个对象的所有引用都被删除或者当对象被显示销毁时执行
   -- php(5)--数组和oop - 眷恋天空的驴 - Web---我要做一个好孩子,从明天起。 function  __destruct(){  //释放资源操作}
   -- php(5)--数组和oop - 眷恋天空的驴 - Web---我要做一个好孩子,从明天起。 主要作用:释放资源。比如释放数据库的链接,图片资源,或者销毁某个对象
   -- php(5)--数组和oop - 眷恋天空的驴 - Web---我要做一个好孩子,从明天起。 调用时候:会自动的调用 ,当程序退出(进程结束)的时候  当一个对象成为垃圾对象的时候(就是没有任何变量在引用它)
   -- php(5)--数组和oop - 眷恋天空的驴 - Web---我要做一个好孩子,从明天起。 调用顺序:栈后进先出 ,则析构方法调用的顺序也是先创建的后被销毁
   -- php(5)--数组和oop - 眷恋天空的驴 - Web---我要做一个好孩子,从明天起。 系统调用 不传参数  一个类只有一个
常量在内存中的调用:
php(5)--数组和oop - 眷恋天空的驴 - Web---我要做一个好孩子,从明天起。
 
全局变脸在定义和赋值的时候要分开。在函数内部使用的时候还要申明一下

<?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;

--静态方法(类方法)是属于所有对象实例的
   php(5)--数组和oop - 眷恋天空的驴 - Web---我要做一个好孩子,从明天起。 -- 提出 当我们操作静态变量的时候,就需要使用静态方法,只能操作静态变量
   php(5)--数组和oop - 眷恋天空的驴 - Web---我要做一个好孩子,从明天起。 --修饰符 static 方法名(){}
   php(5)--数组和oop - 眷恋天空的驴 - Web---我要做一个好孩子,从明天起。 --类方法中不能访问非静态属性(变量)
   php(5)--数组和oop - 眷恋天空的驴 - Web---我要做一个好孩子,从明天起。 --在类外部 类名::类方法名  或者 对象名—>类方法名
   php(5)--数组和oop - 眷恋天空的驴 - Web---我要做一个好孩子,从明天起。 --内部self::类方法名  或者 类名::类方法名
   php(5)--数组和oop - 眷恋天空的驴 - Web---我要做一个好孩子,从明天起。 --普通的成员方法静态变量和非静态太变量都可以操作
 

<?php
class Student
{
public static $fee = 0;
public $name;
function __construct($n)
{
$this->name=$n;
}
public static function enterShcool($ifee)
{
self::$fee+=$ifee;
}
public static function getFree()
{
return self::$fee;
}
}
$s1 = new Student('anikin');
$s1->enterShcool(5000);

$s2 = new Student('jack');
Student::enterShcool(3400);

echo '总学费是:'.Student::getFree(); //-->8400
?>


什么时候需要使用静态变量:当有个变量希望这个变量让所有人共享的时候
静态变量和普通变量的区别
   php(5)--数组和oop - 眷恋天空的驴 - Web---我要做一个好孩子,从明天起。  -加上static称为类变量或者静态变量,否在称之为实例变量
   php(5)--数组和oop - 眷恋天空的驴 - Web---我要做一个好孩子,从明天起。 -类变量是与类相关的,公共的属性
   php(5)--数组和oop - 眷恋天空的驴 - Web---我要做一个好孩子,从明天起。 -实例变量属于每个对象个体的属性
   php(5)--数组和oop - 眷恋天空的驴 - Web---我要做一个好孩子,从明天起。 -类变量可是通过类名::类变量名直接访问




评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值