如 class A{ public $attr1=10; } class B extends A{ public $attr2=20;//类B将继承类A除了private的所有属性,并增加只属于自己的方法 } $test=new B();//这个变量包含了类B和类A的属性 echo $test->attr2;//输出20,在这里我也郁闷了好久,为什么attr2前面不加$....害我测试半天 echo $test->attr1;//输出10,说明类B已经继承类A $test=new A(); echo $test->attr1;//输出10 echo $test->attr2;//出错,因为B继承A,并添加属性,A不会变
---------------- 除了继承,还可以在类 里面给变量函数添加作用域
如 class classname{ public $attr1;//公共的属性,默认属性,意思是可以在外部访问 private $attr2;//私有的属性,这属性只能在内部访问,不能在外部访问,另外该属性不能类的继承 protected $attr3;//介于公共属性和私有属性之间的,这属性只能在内部访问,但是却可以类的继承 }
继续上面的例子 class A{ public $attr1=10; private $attr2=20; protected $attr3=30; } class B extends A{ public $attr4=40; public function test1(){ return $this->attr2; } public function test2(){ return this->attr3; } }
MYSQL 创建一个数据库 create database test1; 创建一个名为test1的数据库
use test1;使用test1数据库,因为这个数据库里面还没有数据表,所以要创建个表
create table books( customerid int unsigned not null auto_increment primary key, name char(50) not null, address char(100) not null, city char(30) not null ); 这段代码创建了一个名为books的数据表,有4个字段 字段1是customerid,值为整形,且内容必须是或一个正数,值不能为空(NULL),如果不输入值,则值自动累加,把这个字段设为主键 字段2是name,最多50个字符,值不能为空 字段3是address,最多100个字符,值不能为空 字段4是city,最多30个字符,值不能为空
show tables;显示当前数据库里所有表的清单,前提必须要使用某个数据库 use test1; show tables;这样就显示出了test1数据库里的所有表 describe books;可以查看该表的详细信息。
之后要创建一个用户,要想创建管理员 grant all on *.* to admin indentified by 'admin1' with rant option
其中all是允许用户有哪些权限,all指全部。 还有其他的权限如 SELECT 允许选择行 INSERT 允许 插入新行 UPDATE 允许 修改行 DELETE 允许 删除行 INDEX 允许 创建和拖动特定表的索引 ALTER 允许 改变显存表的结构,如添加列,重命名列,修改列的数据类型等 CREATE 允许创建芯数据库或表,如果指定了特定的数据库或表,他们只能够在该库或表创建 DROP 允许用户拖动删除数据库或表 不过上面的大部分是普通用户的权限,下面列出管理员的权限 CREATE TEMPORARY TABLES:允许在CREATE TABLES语句中使用temporary关键字 FILE:允许将数据从文件读入表,或从表读入文件 LOCK TABLES:允许使用LOCK TABLES语句 PROCESS:允许查看属于所有用户的服务器进程 RELOAD:允许重新载入授权表,清空授权,主机,日志和表 REPLICATION CLIENT:允许赋值主机(MASTER)和从机(SLAVE)上使用SHOW STATUS SHOW DATABASES:允许使用SHOW DATABASES语句查看所有数据库列表,没有这个权限,用户只能看到他们能够看到的数据库 SHUTDOWN:允许关闭MYSQL服务器 SUPER:允许关闭属于任何用户的线程 。。 还有两个特殊权限 ALL:授予上面列出的所有全新啊 USAGE:不授予任何权限,这个权限只能允许用户登录,但是不允许任何操作 ------- on *.* 指的是权限所应用的数据库或表,*代表所有,如果想在其他表,比如 on test.* 就是权限只能应用于test数据库 on test.books 就是权限只能应用于test数据库的books数据表 ------- to admin indentified by 'admin1' 意思是用户名为admin,密码为admin1 with rant option 允许向别人授予自己所拥有的权限 ------- 我们可以创建一个没有任何权限的用户 grant usage on test.* to test identified by 'test'; 可以给他一些权限 grant select,insert,update,delete,index,alter,create,drop on test.books to test1; 如果觉得权限过高,也可以减少一些权限 revoke alter,create,drop on test2.books from test1;