当需要执行循环的时候,首先要判断所循环的对象是什么类型,如果是数组类型,可以用var 来给数组本身赋予一个变量,再使用a.length获取数组的长度,最后用for循环来执行函数,如果需要循环的是一个对象,而不是数组,那么可以用这种方式:

      var x in a   (定义一个变量x在对象a)

举例:

      var str = ‘’;

      for (var x in a[i]){

           str += x+a[i][x]

      }

}

document.write(str);

 

在为对象的属性赋值的时候,不能使用类似函数的表达式数组如rand(22,33);否则会被报出语法错误。

通常情况下,一个PHP文件中只有一个类,类名用大驼峰命名法,且文件名与类名一致。类作为类似于的存在,通常用于被调用。

且具有一个命名空间,上面写的是此对象文件的路径。

并且在调用此文件的时候,ubuntu是完全严谨,区分大小写的,除ubuntu外的其他系统都无视引入文件名的大小写,因此我们在引用文件的时候,要多用require而不是include。

 

引用同一个类,但赋予不一样的变量名字,它们相等而不全等。

 

 

而当改变了它们的属性内容后,它们不相等更不全等,无论这个属性在现实意义上有没有作用,在数据方面,已经改变。

 

类是共性,但一个类中创建的对象,则是一个个性,然而反过来讲,拥有这个个性的对象,依然属于这一个类。

 

创建对象方法时的function后面的括号内可以跟上对象,做成一个类似模板的东西。

 

魔术方法:function__construct(),又称为构造方法,优先级最高,当一个对象被实例化new 时会自动调用该方法,而且此方法是第一个被执行的。常用在预处理文件格式、打开数据库等。

 

与之相对,有function__destruct(),又称为析构方法,优先级最低,当一个对象over时被自动调用,且此方法最后一个被执行。(输出在页面最末尾,且累加)。常用在关闭数据库等。

何为over:页面执行结束,或者此对象变量被重新赋值的时候。

 

extends 意思是继承、扩展,常用在class的编写当中,如定义一个class a,

再定义一个class b,如果a代表人类,b代表学生,那么显而易见,b应该具有a所拥有的一切的对象属性和方法,所以,在定义class b时,可以用class b extends a来让对象b继承对象a的所有被定义的特性。

但需要声明的一点是,尽管b继承了a的所有特性,可在dom树上,b并不是a的子集,而是与它并列(我擦,经理忽然又说是父类,到底是不是)

 

而当重新定义b的某个与a重名的属性时,输出的属性以新定义的为主,这个特性称为重写

 

在PHP中定义对象时,只能一脉单传,是单继承的,如果是在Java中,对象可以多继承。

 

对象的属性有三种类型:public(公共的)、protected(受保护的)和private(私有的),后两种成员属性或成员方法不能在类的外面访问。只能被内部调用(通过function来调用)。

并且,使用private修饰的成员属性和成员方法不能被继承,而protected修饰的成员属性和方法可以被继承。

 

 

使用private修饰的成员属性和成员方法,具有封装性,任意的外部元素想要调用具有封装性的元素,都需要经过这个元素本身的同意才可以调取,保证了一定程度上的自主性。

在function中,如果不书写特定的return,那么系统会默认return一个null,作为隐藏的属性。

封装性在任何面向对象的语言中都具有,只是它们的单词可能不仅仅局限于protectedprivatepublic

引用同一个类,但赋予不一样的变量名字,它们相等而不全等。

就算同一个类里面有不同权限修饰词所修饰的属性和方法,在初始化的瞬间,二者也是相等的。

这种相等的瞬间可以称之为——单例。

 

单例:也叫单件、单个,只允许类产生一个对象。

优点是可以节省资源。

 

 

 

 

var_dump可以打印任何的变量,就算是private修饰的属性也可以。

子类为父类的某个属性或方法重新赋值,称为重写

在PHP里面:当父类的某个方法前加上了final时,它便不能被重写,只能被重新赋值。

final并不能修饰属性,只可以修饰类和方法。当final用来修饰类时,这个被修饰的类不能被继承。

Static:修饰静态变量,特性是可以记录被修饰词的状态,不会被销毁。当将其放在PHP的定义类时,可以将被修饰的属性词隐藏,改变调用属性的方法。

 

如果是外部直接调用属性,可以这样书写:

类名::属性名或方法名()(注意,是双冒号)。

如果是内部直接调用属性,则这样书写:

self::属性名或方法名();

实例化的对象无法调用被static修饰的属性和方法。

我丢个双等号啊啊啊啊啊!

 

 

在类里面定义常量的时候,要用到特殊的方式:

const A=123;(现有语法可以用这种方式在通常情况下会直接定义常量)

 

class B{

      const A=123;

而在类中,只能以这种方式定义常量。虽然常量不可以被重新赋值,但由于两个常量分属于不同的类别中,所以并不相互影响,并且,也不能相互调用。

 

而在调用类内部的const时,和调用static修饰的变量时一样,要用到self双冒号和类名双冒号。

 

 

 

 

 

 

 

 

 

 

 

 

 

 

小葵花妈妈课堂开课啦!孩子代码老出错,多半是废了!

 

 

什么是数据库、为什么要诞生数据库、数据库有哪些分类、我们为什么学习mysql而不是其他类型的数据库。

 

通常认为,数据库是数据库管理软件。当数据量非常大的时候,无论是管理数据,还是去做数据的增删改查,都变得十分繁杂,如记事本、excel等软件已经不能满足操作数据的需求,因此,效率奇高无比的数据库应运而生。数据的安全性和稳定性也高了很多。

我们学习mysql的原因就是……它成本低,且拥有超过50%的全球装机量。

在创建表的时候,每个字段都尽量有默认值,否则搜索起来会非常的缓慢。(除了可以自增长的主键。)

退出数据库的方法:exit  quit    Ctrl+C

grant 权限 on 数据库.*to “用户名”@ “主机地址” identifiedby “密码

所有权限是百分号。

 

权限:

select, update,delete,insert(表数据)

create,alert,drop(表结构)

references(外键)

create temporarytables(创建临时表)

index(操作索引)

 show view(视图)

createroutine,alert rouline, execute(储存过程)

all,all privileges(所有权限)

 

收回权限用revoke,格式和新建一个用户且赋予权限的grant一样,但在执行收回权限时,不需要操作密码。

如果想在某个区间内设下地址,可以直接用地址的号码192.168.,中间加上  -  代表从哪里到哪里的区间。

 

 

 

 

 

 

 

 

 

什么是扩展……扩展就是插件QAQ

比如PHP的插件:PDOPHP DataObject)。它是一个中间层,对PHPmysql的兼容性非常高。

<?php

new PDO(“数据库类型(如mysql:host=数据库地址;dbname=数据库名用户名用户密码[PDO::MYSQL_ATTR_INTT_COMMAND=>“SET   NAMES  ‘UTF8’   ”])

 

?>

 

粘贴个代码过来:

$a = newPDO("mysql:host=localhost;dbname=banji","root","54269464",[PDO::MYSQL_ATTR_INIT_COMMAND=>"SETNAMES 'UTF8'"]);

if($a){

      echo 1;

}

 

$b =mysqli_connect("localhost","root","54269464");

if($b){

      echo 2;

 

另外两个:

数据对象—>exec(sql语句)

执行没有返回数据的sql语句  插入  修改  删除

数据对象—>querysql语句)

执行有返回数据的sql语句查询