1.LAMP具体的结构包括:
LAMP:架构模式 L:Linux系统 A:阿帕奇服务器 M:Mysql数据库 P:
php语言
LAMP的特点:运行较快的,体积小,
WAMP:也是一种架构模式的Windows
2.SQL语句的一些写法:
创建表名:creat table 表名 (
Code int primary key,
列名 数据类型...(特别注意最后一列不加逗号)
);
添加:insert into 数据库名.表名 values(数据,按列顺序填充逗号隔开)
eg :insert into users values('p001','张三','男');
修改:update 表 set 列=新值,列=新值 where 条件
eg : update users set Code = 'p001' where Code = 'p002';
删除:delete form 表 where 条件
查询:select 结果显示列 form 表 where 条件
改名字:select Code as '代号' from users;
模糊查询使用关键字like;
排序查询asc是升序;desc是降序;
分页查询使用关键字limit;
mysql如果只安服务不安装界面也可以正常使用;
3.B/S架构:
B/S: Brower server 网页的,依托浏览器的网络系统
C/S: Client(客户端) Server(服务器) eg:记事本,qq ,需要安装客户端
B/S和C/S都需要服务器
一定要网页布局,js
.net 服务器软件IIS,,在Java中 TomCat
4.print_r();用于打印数组
6.php中单引号和双引号包含字符串的区别:
双引号里面可以解析转义字符,单引号里面会原样输出;
双引号里面可以解析变量,单引号不可以;
7.例题:
$x = 1;
++$x;
$y = $x++; //$y=$x;$x=$x+1
输出$y=2;
$x = 1;
++$x;
$y = ++$x; //$x=$x+1;$y=$x;
输出$y=3
8.implode()将数组拼接成字符串;explode()将字符串拆分成数组
str_replace("l","a",$str)查找替代,substr($str,6,5)截取字符串,substr_replace($str,"aaa",0,4)截取替代
9.<?php
$email = 'langwan@thizlinux.com.cn';
$str = strstr($email,'@');
$info = explode('.',$str);
print_r($info);
?>
输出结果:Array([0]=>@thizlinux [1]=>com [2]=>cn)
10.数组的下标不一定是只有数字的,也不是必须从0开始的,像关联数组,
在数组中下标可以是不连续的:删除中间数组之后索引是不连续的
array_values();重新索引的函数 array_unique();去重的函数
11.关于die()和exit():die()函数等价于exit()函数,都是直接退出
12.时间的函数
$nextweek = time() + (7*24*60*60);
echo 'Now:'.date('Y-m-d')."
"; //现在的时间
echo 'Next Week:'.date('Y-m-d',$nextweek); //下周的时间
时间函数:date('Y-m-d H:i:s');当前的时间
time('Y-m-d H:i:s');当前时间戳
13.文字描述题:
父类的构造函数与析构函数会被自动调用;
成员变量需要用public,private,protected修饰,在定义变量时不再需要var关键字;
父类中定义的静态成员,不可以在子类中直接调用;
包含抽象方法的类必须为抽象类,抽象类不能被实例化,只能被继承,并且是
在子类中实现具体的功能;
php的源码是开放的;
OPP是面向对象的简称;
静态成员是属于类,普通成员是属于对象的;
类里面的$this关键字代表该对象本身;
list()函数是写在等号的左边的;
each()函数可以返回数组里面的下一个元素;
foreach()遍历数组的时候可以同时遍历key和value;
for只能遍历索引数组,关联数组不可以;
研究一个类,首先我们要研究的是函数的构造函数,构造函数的特点是写法比较特殊,固定写法__construct(),执行特殊:实例化的时候就执行,如果父类中存在构造函数并且需要参数,子类在造对象的时候应该传入相应的参数;
14.function print_A()
{
$A = "phpchina";
echo "A的值为:".$A."<p>";
//return ($A);
}
$B =print_A();
echo "B的值为:".$B."<p>";
输出结果是:A的值为:phpchina
B的值为:
因为$B是没有返回值,因此输出为空;如果有return(A)B的值为:phpchina
15.关于global全局变量:
全局变量也成为外部变量,是在函数的外部定义的,它的作用域从变量定义处开始,到本程序文件的末尾。和其他编程语言不同的是,全局变量不是自动设置为可用的,php中,由于函数可以视为单独的程序片段,所以局部变量会覆盖全局变量的能见度,因此函数中并无法直接调用全局变量。
$A = "HELLO";
function print_A()
{
$A = "php mysql";
global $A;
echo $A;
}
echo $A;
print_A();
输出结果是:HELLOHELLO;
$A = "HELLO";
function print_A()
{
global $A;
$A = "php mysql";//将全局变量覆盖
echo $A;
}
echo $A;
print_A();
输出结果是:HELLOphp mysql
$a =100;
$b =200;
function demo()
{
global $a,$b;
echo $a+$b;
}
demo();
输出结果是:300;
16.&传址一个变则其他变
$a =10;
$b = &$a;
echo $b; //10
$b =16;
echo $b; //16
echo $a; //16
输出结果是:101616
17.在用浏览器查看网页时出现404错误的原因是文件不存在
18.$attr = array("one"=>"aa","1"=>"bb","three"=>"cc");
echo $attr["one"];
echo $attr[1];
echo $attr["1"];
输出结果是:aa bb bb
主要的原因还是因为php是弱类型的语言,可以直接将字符串转化为数字
19.php中输出反斜杠的方式:\第一个是转义字符
$a = "你好";
echo $a,"hello";
输出结果是:你好hello 而使用print会报错
echo "hello world";虽然是换行但是在网页中不能实现
定义字符串的方法
$str = <<<STR
<div style=" background-color:red; color:white; 100px;
height:50px">hello</div>
<div style=" background-color:red; color:white; 100px;
height:50px">wold</div>
STR;
echo $str; // 要求STR可以随便改名但是之间不能有任何符号空格都不可以
20.将john添加到users数组中
$users[] = "john"; //索引自动生成的
array_push($users,"john"); //往数组中追加元素最常用
$users["aa"] = "john"; //产生数组的标签是aa
21.php中随机数的函数1到10
rand(1,10)
另一种表示rand()%10 是0-10的
而rand()*10是数据库中的
22.函数的四要素:函数体,函数名,参数列表,返回类型
时间函数:date('Y-m-d H:i:s');当前的时间
time('Y-m-d H:i:s');当前时间戳
23.$attr = array(1,2,3,4);
while(list($key,$value)=each($attr))
{
echo $key."=>".$value."<br>";
}
while(list($key,$value)=each($attr))
{
echo $key."=>".$value."<br>";
}
输出的结果是:0=>1
1=>2
2=>3
3=>4
只有这四行数据:因为each()函数每次取完值向下走一个指向下一个,这里已经完全取完后就不会再执行;
24.php中布尔型数据只有两个值:真和假(或true false 或0 1)
php中连接两个字符串的符号是“.”,用作拼接字符串
php不可以使用scanf来打印数组
每个语句的结尾都要加“;”来表示语句的结束
php是弱类型的语言,因此在使用的时候不需要定义变量的类型
在php中“==”的意思是“等于”,“=”是赋值
while语句是:先判断条件再执行循环体;do-while是先执行循环体在判断条件
break代表的意思是跳出循环;continue是跳出本次循环
若定义数组是省略关键字key,则第三个数组元素的关键字是2,因为索引是从0开始的;
mysql数据库中查询数据用select语句