php基本知识总结.doc 笔记

Php基本
1.Php的四种标记方式:
    1.  <?php    echo 'hello,php'; ?>  最常用
2.  <?    echo 'hello,php'; ?>  
3.  <% echo 'hello,php'; %>   asp标记
4.  <script language="php">echo 'hello,php';</script>      
2.注释方式:
  多行
    // 单行   
#   单行
3.变量命名(字母、数字、下划线)
    必须以$开头,不能以数字开头,变量名区分大小写。////函数调用不区分大小写
   引用赋值(&):
        $name = '张丹';
        $name2 = &$name;
   
        echo  '$name2: '.$name2;//输出  $name2: 张丹
****注 单引号与双引号的区别:
单引号只照字面输出,不解释,
双引号会先解释,后输出。
如上echo  "$name2: ".$name2;//输出  张丹: 张丹
但是html标签例外,都会按照解释后输出
4.常量
执行期间不能改变其值,一般为大写 ,区分大小写。
分为 内置常量(系统提供) +  自定义常量
自定义常量:
define('常量名','常量值',true/false);true表示不区分大小写;常量名前无需加$;
boolean defined('常量名');//查询常量是否已定义
弱数据类型,即不需要事先声明变量数据类型。
标量类型:string 、Boolean 、 integer、float/double;
混合类型:数组、对象;
特殊类型:资源、null;
gettype()查看数据类型,var_dump(NAME);查看详细信息
6.//类型转换1
echo 1+$num0;//2  true=>1
echo 1+$num;//1 false=>0
//类型转换2  强制转换
$aa = '2' ;
$bb = (int)($aa);
//类型转换 settype()转换
$foo = "5bar"; // string
$bar = true;   // boolean
settype($foo, "integer"); // $foo 现在是 5   (integer)
settype($bar, "string");  // $bar 现在是 "1" (string)
7.unset($aa);销毁标量
9.错误控制操作运算符@
10.= 赋值运算符、==逻辑运算符判断是否值相等 、===判断是否值相等且类型相同

11.循环:跳出循环break、continue、exit
do{}while()
while(){}
for(;;;){}
break:跳出循环,执行循环体外面的代码。
continue:跳出本次循环,执行下一次循环。
exit();终止程序
12.判断:
if  /  if else if/ switch
13.函数:function 函数名
不支持重载。不区分大小写
14.isset() --变量是否已设置
empty() --变量值是否为空
15.类
class name{}
方法
function name{}
///访问修饰符 public公开 private私有 protected受保护
//对象操作其属性与方法用  class->属性名或方法名

子类继承父类,声明的方法或属性如果与父类相同,会覆盖父类的,不想被覆盖,使用final关键字,表示不能被重载,在子类访问时,用parent::

文件读写、数据存储与检索
文件处理步骤:打开文件 =》写入(读取)数据 =》关闭文件;
Fopen(path,文件模式);-》…-》fclose($fp);
文件模式:
            r :只读,读模式
            w:只写,写模式
            r+:只读,读写模式
            w+:只写,读写模式
            x:谨慎写,写模式
            x+:谨慎写,读写模式
            a:追加,直接追加
            a+:追加,先读后追加
            b:二进制
            t:文本;
fwrite(resource handle,string content);
fwrite(resource handle,string content,integer maxlength);

bool feof ( resource handle );测试文件指针是否到了文件结束的位置;是否读到文件末尾
每次读取一行: string fgets ( int handle [, int length] )
           string fgetss();从文件指针中读取一行并过滤掉 HTML 标记
           array  fgetcsv();和 fgets() 类似,只除了 fgetcsv() 解析读入的行并找出 CSV 格式的字段然后返回一个包含这些字段的数组。
读取整个文件:
int readfile(filename);//一句完成打开文件并且将内容输出到浏览器。
int fpassthru ( resource handle );
array file(filename);//把整个文件读入一个数组中
file_get_contents()  //把文件读入一个字符串。
读取一个字符:
string fgetc ( resource handle );
读取任意长度:
fread(resource handle, int length) 从文件指针 handle 读取最多 length 个字节
其他文件函数:
是否存在:bool file_exists ( string filename );
删除文件: bool unlink ( string filename );
确定大小:int filesize ( string filename );
文件定位:
    bool rewind ( resource handle ) ;将 handle 的文件位置指针设为文件流的开头。
    int fseek ( resource handle,int offset);在文件指针中定位;
    int ftell ( resource handle ) ;返回文件指针读/写的位置

文件锁定:bool flock (resource handle);
字符串操作。
     格式化:
     使用html 格式化字符串:string  nl2br("\n13456\n\n");//13456
     string   sprintf("\n13456\n\n");
printf("\n13456\n\n");//输出到浏览器
    转义字符串:
       string addslashes ( string str );《==》string stripcslashes ( string str )

常用:
string strtolower ( string str )     
string strtoupper ( string string )
Ucfirst();如果该字符串的第一个字母是大写,则转为大写。
Ucwords();将字符串的每个单词的第一个字母转为大写。
分割字符串array explode ( string separator, string string [, int limit] )
string implode ( string glue, array pieces )    //与 explode正相反
string strtok ( string str, string token )//从字符串中取出一个单词或字符
string substr ( string string, int start [, int length] )//截取字符串
字符串排序: int strcmp ( string str1, string str2 );//strcasecmp不区分大小写
strncmp//不区分大小写,自然排序
strlen();字符长度
查找字符串:
    strstr(string,seacher-string);
查找子字符串位置:
    strpos();第一次出现的位置
   strrpos();最后一次出现的位置
替换子字符串:
    mixed str_replace ( mixed search, mixed replace, mixed subject [, int &count] )
   第四个参数表示替换的操作次数。
   mixed substr_replace ( mixed string, string replacement, int start [, int length] )
   从指定的位置开始查找替换字符串
数组 。
数字索引数组和对象索引数组
索引为数字,用for循环,非数字,用foreach 、list 、each
语法
1.   foreach($array  as  $key=>$value){}
2.   while($element = each($array)){
      echo $each['key'].$each['value'];
}返回数组的当前元素,并将下一个元素作为当前元素。
3.   函数list()可以用来讲一个数组分解为一系列的值。可以按照如下方式将each返回的两个值分开list($key,$value)=each($array);

数组排序:
1) bool sort ( array &array [, int sort_flags] );//升序、按字母、按数字;区分大小写,大写靠前小写靠后,字母和数字混合式,需要用第二个参数指定排序类型:按数字/按字母/默认
2) asort();对数组按元素值进行排序,数组的索引保持和单元的关联
3) ksort():对数组按照键名排序,保留键名到数据的关联
反向排序:rsort();arsort();krsort();降序
随机排序:bool shuffle ( array &array )将数组打乱随机排序;
统计元素个数:count();计算数组中的单元数目或对象中的属性个数
array  array_count_values ( array input );统计数组中所有的值出现的次数
将数组转换为标量变量:
int extract ( array var_array [, int extract_type [, string prefix]] );
//从数组中将变量导入到当前的符号表,接受结合数组 var_array 作为参数并将键名当作变量名,值作为变量的值。

代码重用 。
     1.  Require(文件名);//调用失败会报错
       include(文件名);//调用失败—警告
Require_once(文件名);include_once(文件名)//都表示—确保文件只能被包含一次、防止函数的重复定义产生错误
参数的引用传递和值传递
    函数获取参数的方式是值传递,当传递一个参数的时候,传递的只是变量的复本,复本可以任意修改,但原变量的值不变。当使用引用传递方式,原变量的值才会改变。
     使用—在定义函数时,在参数前加‘&’即可。
php 面向对象 。
特点 继承 – 实现代码的复用,类间存在层次关系。子类将具有父类的属性和方法
、 多态 – 不同的类对同一操作可以有不同的行为。实现不同的方法和操作。
    构造函数function __construct()// 无参 、 有参  类的初始化时调用
析构函数function __destruct()//类销毁前调用,必须为无参
function __set() __get()//类似于对属性的封装

继承:extends 若父类为抽象类,子类必须实现父类的所有抽象方法方法,
接口interface :implements 实现接口的类必须实现接口的所有方法
一个类一次只能继承一个父类,可以实现多个接口。
继承的多重是指类A继承类B ,类B 可能继承类C或更多;类A 将具有父类和父父类的属性和方法;
重载:在子类中再次声明相同的属性或方法叫做重载。
子类中调用父类parent::
final关键字可以禁止继承和重载;
静态方法:使用类明直接访问;
复制对象 clone
反射reflection 
        require_once('aa.php');
    $class = new ReflectionClass('page');

Web
问题:
怎么获取form表单中checkbox多个选项的值?
与asp、jsp不同,在php中,POST获取同名表单项数组,CHECKBOX,必须在form提交表单中将checkbox 选项的name都设置成这样 name="name[]",request接收到的就是一个数组Array,


MSIE;即IE浏览器。
在php文件中要使所有标签正常使用,需要三元素不可缺,html、body。Head。
IMG标签的一些属性:
    hspace=20 ---设置图片左右边缘空白;
vspace=20 ----设置图片上下边缘空白;
alt="how beautiful!"  ----给图片加入注释,图片载入失败时显示,载入成功,则鼠标移到图片上时显示。
Nowrap ---禁止表格单元内的内容自动断行。

Session 的工作机制是:为每个访问者创建一个唯一的 id (UID),并基于这个 UID 来存储变量。UID 存储在 cookie 中,亦或通过 URL 进行传导。
问题:Warning: session_start() [function.session-start]: Cannot send session cookie - headers already sent by (output started at D:\www\index.php:1) in D:\www\index.php on line 2
原因:php.ini文件设置有错误;
解决办法:
session.save_path   =c:\temp  // 在c盘下建一个temp文件夹,session保存路径不能有双引号括
而且session_start必须位于html标签之前

php 中警告:open(/tmp\sess_05fe9f0a14af26f146d23d56bf4c4878, O_RDWR) failed: No such file or directory (2)打开文件失败,没有这样的文件或目录.



$_SESSION['name']=””;

创建cookie:setcookie();
setcookie() 函数必须位于 <html> 标签之前。

setcookie(name, value, expire, path, domain);
删除 cookie 时,使过期日期变更为过去的时间。

php文件上传
<form action="upload_file.php" method="post"
enctype="multipart/form-data">
<label for="file">Filename:</label>
<input type="file" name="file" id="file" />
访问数据库
步骤:建立数据库连接è选择数据库è创建sql语句è初始化连接è执行语句è关闭连接.

建立数据库连接$con = mysql_connect("localhost","root","root");//获取链接
选择数据库并初始化连接:mysql_select_db("my_db", $con);       
创建sql语句: $sql="INSERT INTO person (FirstName, LastName, Age) VALUES ('Peter', 'Griffin', '35')";
执行语句:mysql_query($sql);//
若是查询则:
$result = mysql_query("SELECT * FROM person");
        while($row = mysql_fetch_array($result))
          {
              echo $row['FirstName'] . " " . $row['LastName'];
             echo "<br />";
         }

释放连接:mysql_close();
mysql_fetch_array();返回根据从结果集取得的行生成的数组
mysql_fetch_row() 从指定的结果集中取得一行数据并作为数组返回
mysql_num_rows() 返回结果集中行的数目;

你可能感兴趣的:(sql,PHP,mysql,单元测试,asp)