欧美色欧美亚洲高清在线观看,国产特黄特色a级在线视频,国产一区视频一区欧美,亚洲成a 人在线观看中文

  1. <ul id="fwlom"></ul>

    <object id="fwlom"></object>

    <span id="fwlom"></span><dfn id="fwlom"></dfn>

      <object id="fwlom"></object>

      PHP最優(yōu)秀的年終總結(jié)

      時(shí)間:2019-05-14 03:07:45下載本文作者:會(huì)員上傳
      簡(jiǎn)介:寫寫幫文庫(kù)小編為你整理了多篇相關(guān)的《PHP最優(yōu)秀的年終總結(jié)》,但愿對(duì)你工作學(xué)習(xí)有幫助,當(dāng)然你在寫寫幫文庫(kù)還可以找到更多《PHP最優(yōu)秀的年終總結(jié)》。

      第一篇:PHP最優(yōu)秀的年終總結(jié)

      # 兄弟們, 第一步寫什么?

      # 這年頭上帝都靠不住, 安全重要

      error_reporting(0);

      # 年終報(bào)告規(guī)定用語, 這一定得用呀, 不然, 你死都不知道怎么死.echo '親愛的領(lǐng)導(dǎo)!';

      # 要獲得領(lǐng)導(dǎo)重視的年終獎(jiǎng),一定要用php語言來寫, 不然公司招你進(jìn)來做什么

      define('USERNAME','李剛二世');

      #要第一眼引起觀注, 你懂的, 寫個(gè)標(biāo)題.$title = '年終總結(jié)是根據(jù)年終獎(jiǎng)多少比例形成的三個(gè)代表意識(shí)文獻(xiàn)';

      # 接著, 你一定要做以下這件事, 不然, 你的確夠蛋疼

      $into = $end_of_the_year_award-($you_into +$end_of_the_year_award * 0.2);

      # phper怎么也得展示一下你的技術(shù)所在.echo $b = is_numeric($a)=== true?intval(rand(999,max($a,999)))> 'bbbbbbbbb'?2:'B':max($a + 0,22222222)* $a + 0< 2?'BBBBBBBBBB':***;

      # 接著, 寫正式年終報(bào)告

      if($into >= 100000)

      echo '在領(lǐng)導(dǎo)們辛勤引領(lǐng)下,我工作得非常happy';

      if($into <= 50000)

      echo '不好意思,公司美工經(jīng)常拖放任務(wù)進(jìn)程.';

      if($into <= 5000)

      echo '公司的整個(gè)項(xiàng)目都立場(chǎng)不對(duì), 像一垃圾項(xiàng)目,我強(qiáng)烈建議推倒重新架構(gòu)';

      if($into <= 1000)

      echo '浮云';// 為什么只寫兩個(gè)字呢?因?yàn)楣べY份量, 一字值500, 年終獎(jiǎng)才1000.if($into == '明年會(huì)補(bǔ)償給你')

      alert('后果相當(dāng)嚴(yán)重');//后果就是把php氣得寫js了.# 年終總結(jié)也被稱為感想, 所此, 你可以寫一寫, 領(lǐng)導(dǎo)一般不會(huì)怪你.echo '公司單身美女太少';

      # 優(yōu)秀的程序員總是在空閑的時(shí)刻記錄日志

      error_log('心情有如剛進(jìn)公司時(shí)的五味雜陳');

      # 能夠完整寫個(gè)年終報(bào)告是件技術(shù)活, 中途總會(huì)被客服調(diào)戲一下.echo 'Anna: 哥, 請(qǐng)幫我把這個(gè)訂單5645165456修改產(chǎn)品名lady gaga V2';

      # 特別是這幾天, 異常傻痛.echo '人民的好英雄, 人民的好黨員金大哥離開了, 作為phper, 難道不應(yīng)該傷痛一下?';

      # 給領(lǐng)導(dǎo)講點(diǎn)曲線指數(shù)之類的, 會(huì)表現(xiàn)得比較專業(yè).echo '公司銷售比上年增長(zhǎng)了12%, 比5年前增長(zhǎng)了120%, 比50年前增長(zhǎng)了12000%';

      # 講講自己的工作職責(zé).注意別講太細(xì)膩.echo '為公司成功上市作出努力貢獻(xiàn)';//貢獻(xiàn)這兩字一定要加.# 你總得提點(diǎn)工資要求吧?

      echo '為了公司成功上市, 我愿意做出工資上的貢獻(xiàn)';// 惡心地寫上貢獻(xiàn)二字.# 作為文藝青年, 你得寫一段比較文采性的字.echo '晨光迎著窗戶照射在床頭, 我睜開雙眼, 甜美地微笑了, 為了公司成功上市, 我要起床';

      # 也許你還可以寫些偉大理想給領(lǐng)導(dǎo), 這是走向成功之路的重要一步.echo '希望賈內(nèi)德上船之前能夠告訴我們船票是多少錢一張.同時(shí)也希望深圳房?jī)r(jià)不要跌入2萬內(nèi)';

      # 快到結(jié)束了, 你當(dāng)然要寫些轟動(dòng)的字眼, 讓領(lǐng)導(dǎo)睡間蘇醒.echo '領(lǐng)導(dǎo),我要告訴你, 我已經(jīng)有了, 你懂的.';

      # 作為技術(shù)員, 個(gè)人覺得這函數(shù)一定要調(diào)用.end();

      # 最后, 難道還要我教你嗎?

      ?>

      第二篇:php課程總結(jié)

      一、時(shí)間和地點(diǎn):

      每周四上午在F311上課。

      二、課程內(nèi)容:

      通過這段時(shí)間的學(xué)習(xí),我對(duì)PHP中的MySQL數(shù)據(jù)庫(kù)有了一定的理解。由于以前沒有基礎(chǔ),在老師講課的過程開始有點(diǎn)費(fèi)盡,盡量記了一些。首先學(xué)習(xí)了一些定義:MySQL是一個(gè)小型關(guān)系型數(shù)據(jù)庫(kù)管理系統(tǒng),開發(fā)者為瑞典MySQL AB公司。目前MySQL被廣泛地應(yīng)用在Internet上的中小型網(wǎng)站中。由于其體積小、速度快、總體擁有成本低,尤其是開放源碼這一特點(diǎn),許多中小型網(wǎng)站為了降低網(wǎng)站總體擁有成本而選擇了MySQL作為網(wǎng)站數(shù)據(jù)庫(kù)。

      數(shù)據(jù)(Data)是對(duì)客觀事物的符號(hào)表示,如圖形符號(hào)、數(shù)字、字母等,數(shù)據(jù)是數(shù)據(jù)庫(kù)中存儲(chǔ)的基本對(duì)象。在日常生活中,人們直接用語言來描述事物;在計(jì)算機(jī)中,為了存儲(chǔ)和處理這些事物,就要將事物的特征抽象出來組成一個(gè)記錄來描述。之后,進(jìn)行數(shù)據(jù)的編寫,知道了數(shù)據(jù)庫(kù)的發(fā)展史:人工管理階段(人力手工整理存儲(chǔ)數(shù)據(jù))、文件系統(tǒng)階段(使用磁盤文件來存儲(chǔ)數(shù)據(jù))、數(shù)據(jù)庫(kù)系統(tǒng)階段、關(guān)系型數(shù)據(jù)庫(kù)、高級(jí)數(shù)據(jù)庫(kù)階段、“關(guān)系-對(duì)象”型數(shù)據(jù)庫(kù)。再然后學(xué)習(xí)了數(shù)據(jù)庫(kù)的類型:

      (1)純文本數(shù)據(jù)庫(kù): 純文本數(shù)據(jù)庫(kù)是只用空格符、制表符和換行符來分割信息的文本文件。適用于小型應(yīng)用,對(duì)于大中型應(yīng)用來說它存在諸多限制:

      ? 只能順序訪問,不能進(jìn)行隨機(jī)訪問。? 查找數(shù)據(jù)和數(shù)據(jù)關(guān)系或多用戶同時(shí)訪問進(jìn)行寫操作時(shí)非常困難。

      (2)關(guān)系數(shù)據(jù)庫(kù):

      由于純文本數(shù)據(jù)庫(kù)存在諸多局限,所以人們開始研究數(shù)據(jù)模型,設(shè)計(jì)各種類型的使用方便的數(shù)據(jù)庫(kù)。在數(shù)據(jù)庫(kù)的發(fā)展史上,最具影響的數(shù)據(jù)庫(kù)模型有:層次模型、網(wǎng)狀模型和關(guān)系模型。其中,關(guān)系模型是目前應(yīng)用最廣泛和最有發(fā)展前途的一種數(shù)據(jù)模型,其數(shù)據(jù)結(jié)構(gòu)簡(jiǎn)單,當(dāng)前主流的數(shù)據(jù)庫(kù)系統(tǒng)幾乎都采用關(guān)系模型。數(shù)據(jù)庫(kù)管理系統(tǒng):數(shù)據(jù)庫(kù)管理系統(tǒng)(Database Management System)是一種操縱和管理數(shù)據(jù)庫(kù)的大型軟件,是用于建立、使用和維護(hù)數(shù)據(jù)庫(kù),簡(jiǎn)稱DBMS。它對(duì)數(shù)據(jù)庫(kù)進(jìn)行統(tǒng)一的管理和控制,以保證數(shù)據(jù)庫(kù)的安全性和完整性。

      MySQl特征:性能快捷、優(yōu)化SQL語言、容易使用、多用戶支持、可移植性和開放源代碼、遵循國(guó)際標(biāo)準(zhǔn)和國(guó)際化支持、為多種編程語言提供API。

      ? mysql命令:mysql命令

      mysql-h host_name-u user_name –ppassword ? h:當(dāng)連接MySQL服務(wù)器不在同臺(tái)主機(jī)時(shí),填寫主機(jī)名或IP地址 ? u:登錄MySQL的用戶名 ? p:登錄MySQL的密碼

      ? 注意:密碼如果寫在命令行的時(shí)候一定不能有空格。如果使用的系統(tǒng)為linux并且登陸用戶名字與MySQL的用戶名相同即可不用輸入用戶名密碼,linux默認(rèn)是以root登陸,windows默認(rèn)用戶是ODBC mysql程序常用命令:選定默認(rèn)數(shù)據(jù)庫(kù):use dbname;顯示所有數(shù)據(jù)庫(kù):show databases;顯示默認(rèn)數(shù)據(jù)庫(kù)中所有表:show tables;放棄正在輸入的命令:c;顯示命令清單:h;退出mysql程序:q;查看MySQL服務(wù)器狀態(tài)信息:s 接著我們講了數(shù)據(jù)庫(kù)基礎(chǔ)知識(shí),在此課中我們了解了數(shù)據(jù)庫(kù): 數(shù)據(jù)庫(kù)由一批數(shù)據(jù)構(gòu)成的有序集合,這些數(shù)據(jù)被分門別類地存放在一些結(jié)構(gòu)化的數(shù)

      據(jù)表(table)里,而數(shù)據(jù)表之間又往往存在交叉引用的關(guān)系,這種關(guān)系使數(shù)據(jù)庫(kù)又被稱為關(guān)系型數(shù)據(jù)庫(kù) 檔案柜=數(shù)據(jù)庫(kù) 抽屜=表 文件=記錄

      一、數(shù)據(jù)庫(kù)的組成以及功能

      1、SQL語法組成:DML(Data Manipulation Language數(shù)據(jù)操作語言)

      ——查詢、插入、刪除和修改數(shù)據(jù)庫(kù)中的數(shù)據(jù); ——SELECT、INSERT、UPDATE、DELETE等;

      DCL(Data Control Language數(shù)據(jù)控制語言)

      ——用來控制存取許可、存取權(quán)限等; ——GRANT、REVOKE 等;

      DDL(Data Definition Language數(shù)據(jù)定義語言)——用來建立數(shù)據(jù)庫(kù)、數(shù)據(jù)庫(kù)對(duì)象和定義其列

      ——CREATE TABLE、DROP TABLE、ALTER TABLE 等 功能函數(shù)

      ——日期函數(shù)、數(shù)學(xué)函數(shù)、字符函數(shù)、系統(tǒng)函數(shù)等

      2、MysQl數(shù)據(jù)庫(kù)增刪改查:

      數(shù)據(jù)庫(kù)的操作:增、刪、改、查

      增 create database name、刪 drop database name、查 show databases 改 沒有修改數(shù)據(jù)庫(kù)的語句、可以修改數(shù)據(jù)庫(kù)的名字

      Myisan 直接進(jìn)入mysql data文件夾進(jìn)行修改、Innodb 不可以改名,只能重建 幾個(gè)重要的數(shù)據(jù)庫(kù):

      Informatio_schema 存儲(chǔ)數(shù)據(jù)庫(kù)的各種信息用戶信息,列表信息,字符集信息等等?.Mysql用戶權(quán)限信息

      Test 僅供用戶使用的測(cè)試數(shù)據(jù)庫(kù),可以隨意使用 Cluster 服務(wù)器數(shù)據(jù)集,不可以刪除

      Phpmyadmin mysql圖形管理軟件的一種web

      3、數(shù)據(jù)表的操作

      Use 數(shù)據(jù)庫(kù)名; 增 create table 表名(字段名 字段類型[約束條件],字段名 字段類型[約束條件]。。)

      刪 drop table 表名 改

      查 show tables

      4、數(shù)據(jù)類型種類:

      ? 數(shù)值型

      分為整型和浮點(diǎn)型

      ? 整型:可以由十進(jìn)制和十六進(jìn)制表示

      整數(shù)由數(shù)字序列組成,如:1,100。

      由十六進(jìn)制表示方法:0x且后面加1—9和A—F 的任意數(shù)字或字母,并且0x中的X不能大寫。

      ? 浮點(diǎn)型:

      浮點(diǎn)數(shù)由一個(gè)數(shù)字加一個(gè)小數(shù)點(diǎn)再加上一個(gè)數(shù)字組成。兩個(gè)數(shù)字序列不能同時(shí)為空。

      數(shù)值列的完整性約束

      (1)AUTO_INCREMENT 自動(dòng)標(biāo)識(shí)列,在需要產(chǎn)生唯一標(biāo)志符號(hào)或者順序值時(shí)候,可用此屬性。值一般從1開始,每行增加1,在插入NULL到一個(gè)AUTO_INCREMENT列時(shí),MySQL會(huì)插入一個(gè)比該列中當(dāng)前最大值大1 的值,一個(gè)表中最多能有一個(gè)有此屬性的列。對(duì)于想使用此屬性的列應(yīng)該定義為NOT NULL,并定義為PRIMARY KEY 或者定義為UNIQUE鍵。

      舉例:

      create table t(id int auto_increment not null primary key);(2)UNSIGNED 無符號(hào),此屬性禁用負(fù)值,將數(shù)值的取值范圍從零開始。舉例:

      create table t(num tinyint , num2 tinyint unsigned);(3)NULL和NOT NULL 默認(rèn)為NULL,即插入值時(shí)沒有在此字段插入值時(shí)自動(dòng)填NULL,如果指定了NOT NULL,則必須在插入值時(shí)在此字段添入值,不允許插入NULL值。(4)DEFAULT 可以通過此屬性來指定一個(gè)缺省值,即如果沒有在此列添加值,那么默認(rèn)添加DEFAULT后指定值。(5)ZEROFILL 前導(dǎo)零填充數(shù)值類型值以達(dá)到列的顯示寬度。

      舉例:

      create table test2(num1 int default 1,num2 int zerofill);CHAR和VARCHAR類型:

      CHAR類型和VARCHAR類型長(zhǎng)度范圍都是0~255之間的大小。他們之間的差別在于MySQL處理存儲(chǔ)的方式:

      CHAR把這個(gè)大小視為值的準(zhǔn)確大小(用空格填補(bǔ)比較短的值)。

      VARCHAR類型把它視為最大值并且只使用了存儲(chǔ)字符串實(shí)際上需要的字節(jié)數(shù)(增加了一個(gè)額外的字節(jié)記錄長(zhǎng)度)。因而,較短的值當(dāng)被插入一個(gè)語句為VARCHAR類型的字段時(shí),將不會(huì)用空格填補(bǔ)(然而,較長(zhǎng)的值仍然被截短)。

      5、創(chuàng)建數(shù)據(jù)庫(kù):

      建立數(shù)據(jù)庫(kù)操作:

      語法:create database 數(shù)據(jù)庫(kù)名

      敘述:創(chuàng)建一個(gè)具有指定名稱的數(shù)據(jù)庫(kù)。如果要?jiǎng)?chuàng)建的數(shù)據(jù)庫(kù)已經(jīng)存在,或者沒有創(chuàng)建它的適當(dāng)權(quán)限,則此語句失敗。例:建立一個(gè)student庫(kù)。

      mysql> create database student;創(chuàng)建表:建立表操作:

      語法:create table 表名(? 列名1 列類型 [<列的完整性約束>], ? 列名2 列類型 [<列的完整性約束>], ?......);敘 述:在當(dāng)前數(shù)據(jù)庫(kù)下新創(chuàng)建一個(gè)數(shù)據(jù)表。

      列類型:表示該列的數(shù)據(jù)類型。例:

      建立一個(gè)表school,其由兩列組成,第一列屬性為非空,并做為主鍵,并自增

      ? create table school(? school_id int(10)not null auto_increment primary key, ? school_name varchar(20)

      ?);

      6、主鍵與外鍵:數(shù)據(jù)表之間的關(guān)聯(lián)/引用關(guān)系是依靠具體的主鍵(primary key)和外鍵(foreign key)建立起來的。

      (1)主鍵:幫助MySQL以最快的速度把一條特點(diǎn)的數(shù)據(jù)記錄的位置確定下來。

      主鍵必須是唯一的

      主鍵應(yīng)該是緊湊的,因此整數(shù)類型比較適合

      主鍵

      create table student(sid int not null auto_increment, name varchar(20)not null, primary key(sid));(2)外鍵:引用另外一個(gè)數(shù)據(jù)表的某條記錄。

      外鍵列類型盡可能與主鍵列類型保持一致 外鍵列應(yīng)該加上NOT NULL 外鍵(自動(dòng)檢查外鍵是否匹配,僅適用InnoDB)

      create table score(cid int not null auto_increment primary key, score int, sid int, foreign key(sid)references student(sid));

      7、刪除數(shù)據(jù)庫(kù)或表操作

      ? 刪除表操作

      語法:drop table [if exists] tab_name [,tab_name]...敘述:從數(shù)據(jù)庫(kù)中刪除給定的表。如果給出if exists 子句,則刪除不存在的表不會(huì)出錯(cuò)。

      ? 刪除數(shù)據(jù)庫(kù)操作

      語法:drop database [if exists] db_name 敘述:刪除給定的數(shù)據(jù)庫(kù)。在刪除一個(gè)數(shù)據(jù)庫(kù)后,它就永遠(yuǎn)沒有了,因此要特別小心。如果給出if exists 子句,則刪除不存在的數(shù)據(jù)庫(kù)不會(huì)出錯(cuò)。

      更改表結(jié)構(gòu)操作:

      ?

      語法:alter table 表名 action;? 說明:action 可以是如下語句:

      ? add 列名 建表語句 [first | after 列名] 可以為表添加一列,如果沒指定first或者after,則在列尾添加一列,否則在指定列添加新列

      ? add primary key(列名)為表添加一個(gè)主鍵,如果主鍵已經(jīng)存在,則出現(xiàn)錯(cuò)誤

      ? add foreign key(列名)references 表名(列名)為表添加一個(gè)外鍵

      ? alter 列名 set default 默認(rèn)值

      可以更改指定列默認(rèn)值

      舉例1:

      向people表中添加字段address2,類型為varchar,最大長(zhǎng)度為100 ? alter table people add address2 varchar(100);

      8、插入記錄操作

      ? 敘述:

      如果表名后面沒寫字段名,則默認(rèn)是向所有的字段添加值,另外字符串值應(yīng)該用‘ ’或“ ”引號(hào)括起來

      ? 舉例1:向people表中添加一條記錄:

      insert into people(name,age)

      values(“zhangsan”,20);多表查詢—分類

      ? 連接查詢

      ? 同時(shí)涉及多個(gè)表的查詢稱為連接查詢 ? 用來連接兩個(gè)表的條件稱為連接條件

      ? 內(nèi)連接(INNER JOIN)? 外連接

      ——左外聯(lián)結(jié)(LEFT JOIN)——右外聯(lián)結(jié)(RIGHT JOIN)

      二、算數(shù)運(yùn)算符

      (1)用字符串表示的數(shù)字在任何可能便于計(jì)算的地方都被自動(dòng)地轉(zhuǎn)換為數(shù)字。當(dāng)執(zhí)行轉(zhuǎn)換時(shí),MySQL遵循兩個(gè)基本規(guī)則:

      ? 如果第一位是數(shù)字的字符串被用于一個(gè)算數(shù)運(yùn)算中,那么它被轉(zhuǎn)換為這個(gè)數(shù)字的值。? 如果一個(gè)包含字符和數(shù)字混合的字符串不能被正確的轉(zhuǎn)換為數(shù)字,那么它被轉(zhuǎn)換成0。

      (2)比較運(yùn)算符

      ? 比較運(yùn)算符允許我們對(duì)表達(dá)式的左邊和右邊進(jìn)行比較。一個(gè)比較運(yùn)算符的結(jié)果總是1(真),0(假),或是為NULL(不能確定)。? 比較運(yùn)算符可以用于比較數(shù)字和字符串。數(shù)字作為浮點(diǎn)值比較,而字符串以不區(qū)分大小寫的方式進(jìn)行比較(除非使用特殊的BINARY二進(jìn)制關(guān)鍵字)

      在第二章中我們學(xué)習(xí)到了數(shù)據(jù)庫(kù)的連接。

      1、mysql 連接:

      七劍下天山

      // 第一賤:連接數(shù)據(jù)庫(kù)

      ? mysql_connect — 打開一個(gè)到 MySQL 服務(wù)器的連接

      ? mysql_pconnect — 打開一個(gè)到 MySQL 服務(wù)器的持久連接

      ? //resource mysql_connect([ string $server [, string $username [, string

      $password [, bool $new_link [, int $client_flags ]]]]])(在php手冊(cè)中有 ? //mysql 連接:

      ? // mysql_connect 非持久連接,效率較低,對(duì)資源消耗小 ? // mysql_pconnect 持久連接,效率高,消耗大量的資源 ? $link=mysql_connect('localhost:3306','root','root');? var_dump($link);// 第二賤:判斷連接是否成功

      ? //第二賤:判斷連接是否成功//mysql_errno — 返回上一個(gè) MySQL 操作中的錯(cuò)誤信息的數(shù)字編碼

      ? //mysql_error — 返回上一個(gè) MySQL 操作產(chǎn)生的文本錯(cuò)誤信息

      ? //echo mysql_errno();正確返回0,錯(cuò)誤返回一個(gè)正整數(shù),輸出最近一次的mysql錯(cuò)誤。

      // 第三賤:設(shè)置字符集

      ? bool mysql_set_charset(string $charset [, resource $link_identifier ])? //mysql_set_charset — Sets the client character set ? //bool mysql_set_charset(string $charset [, resource $link_identifier ])? mysql_set_charset('utf8');// 第四賤:選擇數(shù)據(jù)庫(kù)

      ? //mysql_select_db — 選擇 MySQL 數(shù)據(jù)庫(kù) ? mysql_select_db('company11');? mysql_select_db — 選擇 MySQL 數(shù)據(jù)庫(kù) ? 說明

      ? bool mysql_select_db(string $database_name [, resource $ link_identifier ])? 成功時(shí)返回 TRUE,或者在失敗時(shí)返回 FALSE.? mysql_select_db()設(shè)定與指定的連接標(biāo)識(shí)符所關(guān)聯(lián)的服務(wù)器上的當(dāng)前激活數(shù)據(jù)庫(kù)。如果沒有指定連接標(biāo)識(shí)符,則使用上一個(gè)打開的連接。如果沒有打開的連接,本函數(shù)將無參數(shù)調(diào)用 mysql_connect()來嘗試打開一個(gè)并使用之。

      // 第五賤:準(zhǔn)備并且發(fā)送sql語句

      ? //$sql='select * from biao';? //mysql_query($sql)//mysql_query — 發(fā)送一條 MySQL 查詢

      //resource mysql_query(string $query [, resource $link_identifier ])// 第六賤: 判斷執(zhí)行結(jié)果,或者遍歷結(jié)果集

      ? //增刪改的判斷

      ? $result=mysql_query($sql);(放入第五賤)? if($result && mysql_affected_rows()){ ?

      echo '執(zhí)行成功';? }else{ ?

      echo '執(zhí)行失敗,或者不存在數(shù)據(jù)';? } ? $sql=“insert into zhiyuan(name,sex,bumen)values('zhou',0,2)”;? $sql=“update zhiyuan set bumen=3 where name='小王'”;? $sql=“insert into zhiyuan(name,sex,bumen)values('小王',0,2)”;// 第七賤:萬賤歸宗 */

      之后,學(xué)習(xí)了面向?qū)ο蟆?/p>

      1、面對(duì)對(duì)象技術(shù)的基本觀點(diǎn)如下:

      (1)客觀世界由對(duì)象組成。

      (2)具有相同數(shù)據(jù)(屬性)和操作(方法)的對(duì)象可歸納成類。

      (3)類可以派生出子類,子類除了繼承父類的全部特性外還可以有自己的特性(4)對(duì)象之間的聯(lián)系通過消息傳遞(可理解為方法調(diào)用)來維系。

      假設(shè)m1是類Manager的一個(gè)實(shí)例(或?qū)ο?,當(dāng)外界要求把這個(gè)對(duì)象所 代表的那位經(jīng)理的級(jí)別改變?yōu)?時(shí),就應(yīng)以下面的方式向這個(gè)對(duì)象發(fā)出一條消息: ml.ChangeLevel(2)消息傳遞

      PHP的WEB技術(shù)面向?qū)ο笫欠略飕F(xiàn)實(shí)對(duì)象建立的,他們也有狀態(tài)和行為。軟件對(duì)象在一個(gè) 或多個(gè)變量中維護(hù)它的狀態(tài)。變量是一個(gè)由標(biāo)識(shí)符命名的數(shù)據(jù)項(xiàng)。對(duì)象用方法實(shí)現(xiàn)它的行為。方法是與一個(gè)對(duì)象相關(guān)聯(lián)的函數(shù)(子過程)。

      ? 對(duì)象有二個(gè)性質(zhì):狀態(tài)(state)和行為(behavior)。? 對(duì)象是一個(gè)封裝數(shù)據(jù)屬性和操作行為的實(shí)體.2、面向?qū)ο?/p>

      將相關(guān)的變量和方法封裝進(jìn)一個(gè)簡(jiǎn)潔的軟件組合是一種簡(jiǎn)單而強(qiáng)大的思想,它給軟件開發(fā)人員提供了兩個(gè)主要的好處:

      模塊化:一個(gè)對(duì)象的源代碼可以獨(dú)立于其他對(duì)象的源代碼進(jìn)行編寫和維護(hù)。另外,對(duì)象很容易地在系統(tǒng)中傳遞。你可以將你的自行車對(duì)象交給其他人,而它仍然會(huì)正常工作。(重構(gòu)、代碼復(fù)用)

      隱藏信息:對(duì)象有一個(gè)公共接口,其他對(duì)象可以使用這個(gè)接口與它通信。對(duì)象可以維護(hù)私有的信息和方法,可以在任何時(shí)候改變這些信息和方法,而不影響依賴于它的其他對(duì)象。你不需要理解你自行車使用的變速齒輪機(jī)制就能夠使用它。即是:封裝

      3、類

      類是一組具有相同數(shù)據(jù)結(jié)構(gòu)和相同操作對(duì)象的集合。

      在現(xiàn)實(shí)世界中,常常有相同類型的許多對(duì)象。例如,你的自行車只是世界上的許多自行車之一。用面向?qū)ο蟮男g(shù)語來說,你的自行車對(duì)象是自行車類的一個(gè)實(shí)例。自行車有一些共有的狀態(tài)(當(dāng)前的變速齒輪、當(dāng)前的步調(diào)、兩個(gè)輪子)和行為(改變變速齒輪、剎車)。但是,每輛自行車狀態(tài)獨(dú)立于其他自行車狀態(tài),也就說每輛自行車的狀態(tài)可以互不相同。

      ? function jia($no1,$no2){ ?

      return $no1+$no2;? } ? function jian($no1,$no2){ ?

      return $no1-$no2;? } ? function cheng($no1,$no2){ ?

      return $no1*$no2;? } ? function chu($no1,$no2){ ?

      return $no1/$no2;? } ? function max(){

      ? echo '我是最大值';? }

      4、類的成員-字段(1)、聲明字段 name;?>(2)使用字段

      ? 與變量不同,使用字段要使用->操作符,而不是美元符號(hào)

      – $employee=new Staff();– echo $employee->name;? 當(dāng)在定義字段的類中引用字段時(shí)要使用$this關(guān)鍵字。$this表示當(dāng)前類

      5、、構(gòu)造函數(shù)

      構(gòu)造函數(shù)是類中的一個(gè)特殊函數(shù),當(dāng)使用 new 操作符創(chuàng)建一個(gè)類的實(shí)例時(shí),構(gòu)造函數(shù)將會(huì)自動(dòng)調(diào)用。

      Php5中以__construct()作為構(gòu)造函數(shù)。而php4中是以將和類名相同的函數(shù)作為構(gòu)造函數(shù)。為了兼容php5先尋找__construct(),如果找不到再尋找以類名命名的構(gòu)造函數(shù)

      如果一個(gè)類沒有構(gòu)造函數(shù),則調(diào)用基類的構(gòu)造函數(shù) Class Staff { function __construct()//兩個(gè)下劃線 { echo “調(diào)用了構(gòu)造函數(shù)”;} function Staff(){ echo “調(diào)用了構(gòu)造函數(shù)2”;} } $employee=new Staff();? //構(gòu)造方法 函數(shù)

      ? //特點(diǎn),就是在new 的時(shí)候也就是調(diào)用這個(gè)殼的時(shí)候就進(jìn)行了調(diào)用的方法

      ? //寫法:php4中只認(rèn)識(shí)一種 類名和函數(shù)名相同的話,那個(gè)函數(shù)就是使構(gòu)造方法 ? //php5中 類名和函數(shù)名相同/__construct()都是構(gòu)造方法

      ? //注意:構(gòu)造方法在類中只能有一個(gè) 不要寫多個(gè) 使用PHP4的或者PHP5的兩個(gè)相同構(gòu)造方法會(huì)報(bào)重載錯(cuò)誤

      ? //但是如果一個(gè)PHP4的一個(gè)PHP5的構(gòu)造方法就不會(huì)報(bào)錯(cuò),但是邏輯有問題

      ? //構(gòu)造方法的參數(shù)傳值,是在調(diào)用類的時(shí)候()放的就是為構(gòu)造方法準(zhǔn)備的參數(shù) //析構(gòu)方法 函數(shù) __destruct()? //特點(diǎn),析構(gòu)方法是在調(diào)用完之后,自動(dòng)執(zhí)行 在接收類調(diào)用的變量改值的時(shí)候/或者頁(yè)面結(jié)束 自動(dòng)啟動(dòng)

      ? //聲明關(guān)鍵字 [private protected public var ]

      6、析構(gòu)函數(shù)

      (1)析構(gòu)函數(shù)會(huì)在到某個(gè)對(duì)象的所有引用都被刪除或者當(dāng)對(duì)象被顯式銷毀時(shí)執(zhí)行。腳本執(zhí)行結(jié)束時(shí),php會(huì)撤銷內(nèi)存中的所有對(duì)象,因此如果實(shí)例化時(shí)創(chuàng)建的信息都會(huì)保留到內(nèi)存中,就不需要顯式的聲明析構(gòu)函數(shù)。但是如果創(chuàng)建了不那么容易丟失的數(shù)據(jù)時(shí)(例如連接數(shù)據(jù)庫(kù))就應(yīng)當(dāng)定制析構(gòu)函數(shù)進(jìn)行銷毀數(shù)據(jù)。Class Staff { function __construct(){ echo “調(diào)用了構(gòu)造函數(shù)”;} function __destruct(){ echo “調(diào)用了析構(gòu)函數(shù),需要釋放和銷毀的“;} } $employee=new Staff();(2)類的成員-屬性_set()__set()//兩個(gè)下劃線

      $this->$propname=$propvalue;

      print ”ok
      “;} } $model=new Test();$model->age=25;$model->title=”English“;echo ”


      “;print ”age: “.$model->age.”
      “;echo ”
      “;print ”title: “.$model->title.”
      “;?> 可用來驗(yàn)證某個(gè)屬性是否存在或增加新的屬性

      7、控制對(duì)類的成員訪問

      (1)public :在任何位置都可以讀取和修改這個(gè)成員變量或者調(diào)用這個(gè)方法。這個(gè)修飾符在外部代碼使用,由給定類中的代碼使用,或者在擴(kuò)展給定類的功能的類中使用。

      (2)private : 只有這個(gè)類中的代碼才能讀取和修改私有變量或者調(diào)用私有成員函數(shù)。其他代碼、類或者擴(kuò)展這個(gè)類的功能類(子類)不能使用私有條目。

      (3)protected : 外部代碼與給定類不相關(guān)的其他類不能讀取或者修改使用了關(guān)鍵字protected的成員變量,也不能調(diào)用受保護(hù)的成員函數(shù)。(4)abstract 定義抽象類

      (5)final 子類方法不允許覆蓋父類方法 先了解,下一章重點(diǎn)闡述

      8、靜態(tài)類成員

      當(dāng)需要一些所有類對(duì)象共享的字段和方法時(shí)就需要?jiǎng)?chuàng)建一些靜態(tài)的字段和方法。Class Staff { public static $name=”靜態(tài)字段“;static function show(){

      echo self::$name,”
      “;} } echo Staff::$name,”
      “;Staff::show();

      9、常量

      常量(const)即不會(huì)在類中改變的值,對(duì)于該類的任何實(shí)例化的對(duì)象來說 常量值在這些對(duì)象的整個(gè)生命周期中都保持不變 Class Staff { const CITY=“北京”;} echo Staff::CITY;

      之后,學(xué)習(xí)了PHP正則表達(dá)式

      1、正則表達(dá)式簡(jiǎn)介

      正則表達(dá)式是用于描述字符排列模式一種語法規(guī)則。它主要用于字符串的模式分割、匹配、查找及替換操作。到目前為止,我們前面所用過的精確(文本)匹配也是一種正則表達(dá)式。

      在PHP中,正則表達(dá)式一般是由正規(guī)字符和一些特殊字符(類似于通配符)聯(lián)合構(gòu)成的一個(gè)文本模式的程序性描述。

      在程序語言中,通常將模式表達(dá)式(即正則表達(dá)式)包含在兩個(gè)反斜線“/”之間,如“/apple/”。用戶只要把需要匹配的模式內(nèi)容放入定界之間即可。

      如果使用一個(gè)沒有特殊字符的正則表達(dá)式,相當(dāng)于純文本搜索,使用strstr()函數(shù)也可達(dá)到同樣的效果。

      2、^ 和 $ ”^The“: 開頭一定要有”The“字符串;”of despair$“: 結(jié)尾一定要有”of despair“ 的字符串;那么, ”^abc$“: 就是要求以abc開頭和以abc結(jié)尾的字符串,實(shí)際上是只有abc匹配

      ”notice“: 匹配包含notice的字符串 你可以看見如果你沒有用我們提到的兩個(gè)字符(最后一個(gè)例子),就是說 模式(正則表達(dá)式)可以出現(xiàn)在被檢驗(yàn)字符串的任何地方,你沒有把他鎖定到兩邊(開始或結(jié)束)

      3、'*', '+',和 '?', * 表示出現(xiàn)0次或1次或多次 相當(dāng)于{0,}, + 表示出現(xiàn)1次或多次 相當(dāng)于{1,}, ? 表示出現(xiàn)0次或1次 相當(dāng)于{0,1}, 這里是一些例子: ”ab*“: 和ab{0,}同義,匹配以a開頭,后面可以接0個(gè)或者N個(gè)b組成的字符串(”a“, ”ab“, ”abbb“, 等);”ab+“: 和ab{1,}同義,同上條一樣,但最少要有一個(gè)b存在(”ab“, ”abbb“, 等.);”ab?“:和ab{0,1}同義,可以沒有或者只有一個(gè)b;”a?b+$“: 匹配以一個(gè)或者0個(gè)a再加上一個(gè)以上的b結(jié)尾的字符串.要點(diǎn), '*', '+',和 '?'只管它前面那個(gè)字符.4、[ ] 中括號(hào)括住的內(nèi)容只匹配一個(gè)單一的字符

      ”[ab]“: 匹配單個(gè)的 a 或者 b(和 ”a|b“ 一樣);”[a-d]“: 匹配'a' 到'd'的單個(gè)字符(和”a|b|c|d“ 還有 ”[abcd]“效果一樣);一般我們都用[a-zA-Z]來指定字符為一個(gè)大小寫英文 ”^[a-zA-Z]“: 匹配以大小寫字母開頭的字符串 ”[0-9]%“: 匹配含有 形如 x% 的字符串

      ”,[a-zA-Z0-9]$“: 匹配以逗號(hào)再加一個(gè)數(shù)字或字母結(jié)尾的字符串

      5、正則表達(dá)式的語法規(guī)則

      正則表達(dá)式是主要由: ? 原子(普通字符,如英文字符)? 元字符(有特殊功用的字符)? 以及模式修正字符組成。

      一個(gè)正則表達(dá)式中至少包含一個(gè)原子。

      6、PHP中的正則表達(dá)式函數(shù)

      在PHP中有兩套正則表達(dá)式函數(shù)庫(kù)。

      ? 一套是由PCRE(Perl Compatible Regular Expression)庫(kù)提供的。PCRE庫(kù)使用和perl相同的語法規(guī)則實(shí)現(xiàn)了正則表達(dá)式的模式匹配,其使用以“preg_”為前綴命名的函數(shù)。

      ? 另一套是由POSIX(Portable Operation System interface)擴(kuò)展庫(kù)提供的。POSIX擴(kuò)展的正則表達(dá)式由POSIX 1003.2定義,一般使用以“ereg_”為前綴命名的函數(shù)。

      ? 兩套函數(shù)庫(kù)的功能相似,執(zhí)行效率稍有不同。一般而言,實(shí)現(xiàn)相同的功能,使用PCRE庫(kù)的效率略占優(yōu)勢(shì)。

      7、、正則表達(dá)式的拆分

      1split()和spliti()函數(shù)原型:

      ? array split(string $pattern,string $string[,int $limit])本函數(shù)返回一個(gè)字符串?dāng)?shù)組,每個(gè)單元為$string經(jīng)正則表達(dá)式$pattern作為邊界分割出的子串。如果設(shè)定了$limit,則返回的數(shù)組最多包含$limit個(gè)單元。而其中最后一個(gè)單元包含了$string中剩余的所有部分。Spliti是split的忽略大小版本。

      之后,學(xué)習(xí)了文件系統(tǒng)處理。

      open()打開文件或者URL $file=fopen('1.txt','r');//只讀模式打開 //r 只能讀取不能寫入

      //r+ 增強(qiáng)的讀寫模式 表示以只讀模式打開,但是仍然可以進(jìn)行部分的寫入操作 //w 寫模式 打開文件的時(shí)候,原有內(nèi)容會(huì)被清空 如果文件不存在就新建一個(gè)文件,再打開

      //w+ 增強(qiáng)的讀寫模式

      //a 追加模式(寫)不會(huì)清空原有文件而是在源文件的基礎(chǔ)上進(jìn)行累加 不存在也可以新建

      //a+ 增強(qiáng)的追加模式(讀寫)/x異或模式 文件存在就報(bào)錯(cuò),不存在就創(chuàng)建 //x+增強(qiáng)的異或模式 //b 打開二進(jìn)制文件

      1、文件的打開

      2、文件的刪除

      //rename('1.txt','1.exe');/ /刪除

      rmdir('C')//刪除空目錄 ?>

      3、什么是文件系統(tǒng)

      就是對(duì)系統(tǒng)或者服務(wù)器中的文件進(jìn)行操作,增刪改查,文件的上傳和下載

      4、文件系統(tǒng)能做什么?

      a)文件緩存的應(yīng)用 b)配置文件的應(yīng)用

      c)FTP站點(diǎn)主要是FTP下載站 d)站點(diǎn)頁(yè)面的靜態(tài)化 e)文件的上傳和下載。

      5、文件下載:查找 header

      header('content-type:image/gif');//告訴瀏覽器你的文件描述

      header('Content-Disposition: attachment;filename=”baidu.gif"');//告訴瀏覽器文件的大小

      header('content-length'.filesize('baidu.gif'));//顯示內(nèi)容

      readfile('baidu.gif');?>

      三、個(gè)人收獲

      學(xué)習(xí)PHP的過程做一下概括:

      (1)熟悉HTML/CSS/JS等網(wǎng)頁(yè)基本元素,完成階段可自行制作完整的網(wǎng)頁(yè),對(duì)元素屬性達(dá)到熟悉程度

      (2)理解動(dòng)態(tài)語言的概念,運(yùn)做機(jī)制,熟悉PHP語法

      (3)學(xué)習(xí)如何將PHP與HTML結(jié)合起來完成簡(jiǎn)單動(dòng)態(tài)頁(yè)面

      (4)接觸MYSQL,開始設(shè)計(jì)數(shù)據(jù)庫(kù)程序

      (5)不斷鞏固,摸透大部分PHP常用函數(shù),并可理解OOP,MYSQL優(yōu)化,以及模板

      (6)完成一個(gè)功能齊全的動(dòng)態(tài)站點(diǎn)

      通過這段時(shí)間的學(xué)習(xí),自己受益匪淺,知道了很多關(guān)于PHP的東西,學(xué)會(huì)了很多內(nèi)容。在這堂課的學(xué)習(xí)過程中我認(rèn)真聽講,上機(jī)認(rèn)真練習(xí),遇到難題,自己思考與探索,不斷地尋求進(jìn)步,請(qǐng)教老師和同學(xué),雖然上半年沒有學(xué)習(xí)這門課程,不過老師講課非常仔細(xì),然后同學(xué)們一步步自己跟著老師做,還是能跟得上,等著以后自己做畢業(yè)設(shè)計(jì)也有一定的幫助。

      第三篇:PHP基礎(chǔ)總結(jié)

      1、在HTML嵌入PHP腳本有三種辦法:

      <scriptlanguage=“php”>

      //嵌入方式一

      echo(“test”);

      </script>

      <?

      //嵌入方式二

      echo“<br>test2”;

      ?>

      <?php

      //嵌入方式三

      echo“<br>test3”;

      ?>

      還有一種嵌入方式,即使用和Asp相同的標(biāo)記<%%>,但要修改PHP.ini 相關(guān)配置,不推薦使用。

      2、PHP注釋分單行和多行注釋,和java注釋方式相同。

      <?

      //這里是單行注釋

      echo“test”;

      /*

      這里是多行注釋!可以寫很多行注釋內(nèi)容

      */

      ?>

      注意不要有嵌套注釋,如/*aaaa/*asdfa*/asdfasdfas*/,這樣的注釋會(huì)出現(xiàn)問題。

      3、PHP主要的數(shù)據(jù)類型有5種,integer,double,string,array,object。

      4、函數(shù)內(nèi)調(diào)用函數(shù)外部變量,需要先用global進(jìn)行聲明,否則無法訪問,這是PHP與其他程序語言的一個(gè)區(qū)別。事例代碼:

      <?

      $a=1;

      functiontest(){

      echo$a;

      }

      test();//這里將不能輸出結(jié)果“1”。

      functiontest2(){

      global$a;

      echo$a;

      }

      test2();//這樣可以輸出結(jié)果“1”。

      ?>

      注意:PHP可以在函數(shù)內(nèi)部聲明靜態(tài)變量。用途同C語言中。

      5、變量的變量,變量的函數(shù)

      <?

      //變量的變量

      $a=“hello”;

      $$a=“world”;

      echo“$a$hello”;//將輸出“helloworld”

      echo“$a${$a}”;//同樣將輸出“helloworld”

      ?>

      <?

      //變量的函數(shù)

      functionfunc_1(){

      print(“test”);

      }

      functionfun($callback){

      $callback();

      }

      fun(“func_1”);//這樣將輸出“test”

      ?>

      6、PHP同時(shí)支持標(biāo)量數(shù)組和關(guān)聯(lián)數(shù)組,可以使用list()和array()來創(chuàng)建數(shù)組,數(shù)組下標(biāo)從0開始。如:

      <?

      $a[0]=“abc”;

      $a[1]=“def”;

      $b[“foo”]=13;

      $a[]=“hello”;//$a[2]=“hello”

      $a[]=“world”;//$a[3]=“world”

      $name[]=“jill”;//$name[0]=“jill”

      $name[]=“jack”;//$name[1]=“jack”

      ?>

      7、關(guān)聯(lián)參數(shù)傳遞(&的使用),兩種方法。例:

      <?

      //方法一:

      functionfoo(&$bar){

      $bar.=“andsomethingextra”;

      }

      $str=“ThisisaString,”;

      foo($str);

      echo$str;//output:ThisisaString,andsomethingextra

      echo“<br>”;

      //方法二:

      functionfoo1($bar){

      $bar.=“andsomethingextra”;

      }

      $str=“ThisisaString,”;

      foo1($str);

      echo$str;//output:ThisisaString,echo“<br>”;

      foo1(&$str);

      echo$str;//output:ThisisaString,andsomethingextra

      ?>

      8、函數(shù)默認(rèn)值。PHP中函數(shù)支持設(shè)定默認(rèn)值,與C++風(fēng)格相同。

      <?

      functionmakecoffee($type=“coffee”){

      echo“makingacupof$type.n”;

      }

      echomakecoffee();//“makingacupofcoffee”

      echomakecoffee(“espresso”);//“makingacupofespresso”

      /*

      注意:當(dāng)使用參數(shù)默認(rèn)值時(shí)所有有默認(rèn)值的參數(shù)應(yīng)該在無默認(rèn)值的參數(shù)的后邊定義。否則,程序?qū)⒉粫?huì)按照所想的工作。

      */

      functiontest($type=“test”,$ff){//錯(cuò)誤示例

      return$type.$ff;

      }

      9、PHP的幾個(gè)特殊符號(hào)意義。

      $變量

      &變量的地址(加在變量前)

      @不顯示錯(cuò)誤信息(加在變量前)

      ->類的方法或者屬性

      =>數(shù)組的元素值

      ?:三元運(yùn)算子

      10、include()語句與require()語句

      如果要根據(jù)條件或循環(huán)包含文件,需要使用include()。

      require()語句只是被簡(jiǎn)單的包含一次,任何的條件語句或循環(huán)等對(duì)其無效。

      由于include()是一個(gè)特殊的語句結(jié)構(gòu),因此若語句在一個(gè)語句塊中,則必須把他包含在一個(gè)語句塊中。

      <?

      //下面為錯(cuò)誤語句

      if($condition)

      include($file);

      else

      include($other);

      //下面為正確語句

      if($condition){

      include($file);

      }else

      {

      include($other);

      }

      ?>

      第四篇:php學(xué)習(xí)總結(jié)

      調(diào)試/*………*/ //…….#..........插入時(shí)考慮清楚字段類型避免插入后出現(xiàn)缺值,亂碼

      @ 屏蔽錯(cuò)誤or die 條件顯示

      以前學(xué)習(xí)php類的總結(jié):

      1.php中不能重載,但是能用子類覆蓋父類的方法名稱來實(shí)現(xiàn)新的重載

      1.1 在子類中調(diào)用父類的覆蓋部分可以使用 父類名稱::方法名稱();

      2.final 只能定義類和方法,不能使用final定義成員屬性,因?yàn)閒inal是常量的意思,在php里定義常量使用的是define函數(shù)

      2.1 final關(guān)鍵字標(biāo)記的類不能被繼承

      2.2 final關(guān)鍵字標(biāo)記的方法不能被子類重寫

      3.const是一個(gè)定義常量的關(guān)鍵字,在php中定義常量使用的是define()函數(shù),但是在類里定義常量使用的是“const” 這個(gè)關(guān)鍵字

      3.1在程序中不能修改它的值。

      3.2 訪問const 修飾的成員屬性要使用類名,在本類的方法里使用“self”關(guān)鍵字,但不使用“$”符號(hào),也不能使用對(duì)象來訪問。

      4.static關(guān)鍵字可以描述類中的成員屬性和成員方法

      4.1 static 的成員屬于類,而不屬于任何對(duì)象,4.2 static的成員是在類第一次被加載的時(shí)候分配的空間,其他類無法訪問的,只對(duì)類的實(shí)例共享,能一定程度對(duì)類該成員形成保護(hù)

      4.3 靜態(tài)成員放到了“初始化靜態(tài)段”,在類第一次加載的時(shí)候放入的,可以讓堆內(nèi)存里的每個(gè)對(duì)象共享。所以在靜態(tài)方法里,可以使用這個(gè)方法所在的類的“類名”,也可以使用“self”來訪問其他靜態(tài)成員?!皊elf”代表這個(gè)靜態(tài)方法所在的類。

      4.3.1 在類里的靜態(tài)方法是不能訪問類的非靜態(tài)成員的。

      4.3.2 在類的非靜態(tài)方法里可以訪問靜態(tài)成員:”self:成員屬性“;

      4.4類的靜態(tài)變量,非常類似全局變量,能夠被所有類的實(shí)例共享,類的靜態(tài)方法也是一樣,類似于全局函數(shù)。

      4.5 在類內(nèi)函數(shù)訪問靜態(tài)變量時(shí)前面加self::靜態(tài)函數(shù)

      4.6 靜態(tài)變量可以在類外直接訪問,訪問方法是類名::靜態(tài)變量

      4.7 靜態(tài)函數(shù)可以在類外直接訪問,訪問方式是類名::靜態(tài)函數(shù)

      4.8 在類內(nèi)靜態(tài)函數(shù)訪問另一個(gè)靜態(tài)函數(shù)時(shí)使用 類名::靜態(tài)函數(shù)名

      4.8.1 靜態(tài)函數(shù)在類內(nèi)訪問靜態(tài)變量時(shí),訪問方式是類名::靜態(tài)變量

      4.8.2 靜態(tài)函數(shù)在類內(nèi)訪問靜態(tài)變量時(shí),訪問方式除了是類名::靜態(tài)變量外,還可以使用self::靜態(tài)變量

      4.9 在類內(nèi)靜態(tài)函數(shù)訪問另一個(gè)靜態(tài)函數(shù)時(shí)除了使用 類名::靜態(tài)函數(shù)名外,還可以使用self::靜態(tài)函數(shù)名,也可以直接調(diào)用靜態(tài)函數(shù)

      4.10 靜態(tài)函數(shù)內(nèi)不能訪問非靜態(tài)變量

      4.11 在類內(nèi)靜態(tài)函數(shù)不能使用$this->非靜態(tài)函數(shù)名訪問非靜態(tài)函數(shù),可以使用self::非靜態(tài)函數(shù)名

      4.12

      5.類里的”$this“,在php里面提供了一個(gè)本對(duì)象的引用$this,每個(gè)對(duì)象里面都有一個(gè)對(duì)象的引用$this來代表這個(gè)對(duì)象,完成對(duì)象內(nèi)部成員的調(diào)用。

      5.1 $this 就是對(duì)象內(nèi)部代表這個(gè)對(duì)象的引用。

      6.類里“self”,self 和$this相似,只不過self是代表這個(gè)靜態(tài)方法所在的類,所以在靜態(tài)方法里,可以使用這個(gè)方法所在的類的”類名“,也可以使用“self”來訪問其他的靜態(tài)成員,通常使用后者”self::成員屬性“。

      7.類里”__“開頭的函數(shù)名

      7.1類里”__“開頭的函數(shù)名都是在某一時(shí)刻不同情況下自動(dòng)調(diào)用執(zhí)行的方法。

      7.2__toString()方法也是自動(dòng)被調(diào)用,是直接輸出對(duì)象引用時(shí)自動(dòng)調(diào)用的。比如“$p = new Person()”,直接用echo輸出$p會(huì)產(chǎn)生錯(cuò)誤,如果在類里定義了__toString()方法,再用echo直接輸出對(duì)象引用的時(shí)候就不會(huì)產(chǎn)生錯(cuò)誤了

      8.對(duì)象串行化

      8.1 __sleep()方法,在對(duì)象串行化的時(shí)候,會(huì)調(diào)用一個(gè)__sleep()方法來完成一些睡前的事情,__sleep()函數(shù)不接受任何參數(shù),但返回一個(gè)數(shù)組,其中包含需要串行化的屬性。未被包含的屬性降在串行化時(shí)被忽略,如果沒有__sleep()方法,php將保存所以屬性.8.2 __wakeup()方法,在重新醒來時(shí),即由二進(jìn)制串重新組成一個(gè)對(duì)象的時(shí)候,則會(huì)自動(dòng)調(diào)用__wakeup(),做一些對(duì)象醒來就要做的動(dòng)作。

      8.3 有時(shí)你可能需要一個(gè)對(duì)象在反串行化后立即執(zhí)行.為了這樣的目的,PHP會(huì)自動(dòng)尋找__sleep和__wakeup方法.9.protected 成員能被同個(gè)類中的所有方法和繼承出的類的中所有方法訪問到,不能被父類的實(shí)例直接訪問。protected and public 可以動(dòng)態(tài)綁定

      10.private 大部分private屬性仍然可以被外部代碼共享.解決方法是用一對(duì)public方法,一個(gè)是get(獲取屬性的值),另一個(gè)是set(設(shè)置屬性的值).10.1private 不可以動(dòng)態(tài)綁定。Private成員只存在于它們所在的類內(nèi)部.不像public和protected成員那樣,PHP模擬靜態(tài)綁定.10.2 什么時(shí)候用到private?private成員只有當(dāng)你不想讓子類繼承改變或特殊化父類的行為時(shí)才用到,這種情況比你想像的要少,通常來說,一個(gè)好的對(duì)象分層結(jié)構(gòu)應(yīng)當(dāng)允許絕大多數(shù)功能被子類特殊化,改進(jìn),或改變—這是面向?qū)ο缶幊痰幕A(chǔ)之一。一定的情況下需要private方法或變量,例如當(dāng)你確信你不想允許子類改變父類中的某個(gè)特定的部份。

      11.抽象類:抽象方法是就像子類中一般的方法的占位符(占個(gè)地方但不起作用),它與一般方法不同—沒有任何代碼.如果類中存在一個(gè)或更多抽象方法, 那么這個(gè)類就成了抽象類.你不能實(shí)例化抽象類.你必須繼承它們,然后實(shí)例化子類.你也可以把抽象類看成是子類的一個(gè)模板.如果你覆寫所有的抽象方法, 子類就變成一個(gè)普通的類.如果沒有覆寫所有方法, 子類仍是抽象的.如果一個(gè)類中中包含有抽象方法(哪怕只有一個(gè)), 你必須聲明這個(gè)類是抽象的, 在class關(guān)鍵字前加上abstract.聲明抽象方法的語法與聲明一般方法不同.抽象方法的沒有像一般方法那樣包含在大括號(hào){}中的主體部份,并用分號(hào);來結(jié)束.12.接口:如果你建立了一個(gè)只有抽象方法的類,你就定義了一個(gè)接口(interface).為了說明這種情況, PHP中有interface 和implements關(guān)鍵字.你可以用interface來代替抽象類, 用implements來代替extends來說明你的類定義或使用一個(gè)接口.例如, 你可以寫一個(gè)myClass implements myIterface.這兩種方法可以依個(gè)人偏愛來選擇.12.1 如果接口中出現(xiàn)非抽象方法.會(huì)報(bào)錯(cuò)

      12.2 接口中的方法默認(rèn)是public 型的.其它類型的修飾符,不能修飾接口中的抽象方法.12.3 即使接口中所有的方法都是抽象方法,也不能使用 abstract 修飾.也不能用final

      12.4 即使接口中所有的方法都是抽象方法,在接口中,可以聲明靜態(tài)方法.12.5 在接口中可以有常量,e.g.:

      interfaceUser{

      const MAX_GRADE = 99;

      function getName();

      function setName($_name);

      }

      ?>

      13.Namespace關(guān)鍵字給一塊代碼命名.在這個(gè)代碼塊外部,腳本必須用操作符::加上命名空間的名稱來引用這個(gè)代碼塊.引用靜態(tài)的類成員也是用相同的方法.在命名空間內(nèi)代碼不需要聲明命名空間, 它本身就是默認(rèn)的.這種方法比添加前綴的方法好.你的代碼可由此變得更加緊湊和可讀.你可能想知道是否可以建立分層的(嵌套的)命名空間.答案是不可以.但你可以在命名空間名稱后加上冒號(hào), 你可以再次調(diào)用在名稱中不包含冒號(hào)的變量,函數(shù)和類.命名空間允許存在冒號(hào),只要不是第一個(gè)字符和最后一個(gè)字符或接著另一個(gè)冒號(hào).命名空間的名稱中的冒號(hào)對(duì)于PHP來說沒有任何意義, 但如果你用他們來區(qū)分邏輯上的區(qū)塊, 他們可以很好地說明你的代碼中的父子(parent-child)關(guān)系.14.__toString()打印對(duì)象會(huì)調(diào)用它的__toString方法.15.不能實(shí)例化的類

      //

      //當(dāng)__construct()為public時(shí)可以實(shí)例化

      class A{

      private function __construct(){}

      }

      $a = new A();//fail

      ?>

      15.1

      //static的方法留給外部訪問.

      class A{

      private function __construct(){}

      static function getClassA(){

      return “這里是后門,可以通過這里進(jìn)入類內(nèi)部..”;

      }

      }

      echo A::getClassA();

      ?>

      15.2

      //不能用new實(shí)例化的類.

      //static的方法留給外部訪問.

      //在方法內(nèi)部返回實(shí)例.

      class A{

      private function __construct(){

      echo “this is construction
      n”;

      }

      static function getClassA(){

      $a = new A();

      return $a;

      }

      }

      // 看到這里確實(shí)返回的是 A 的實(shí)例.但不是同一個(gè)對(duì)象.$a1 = A::getClassA();

      $a2 = A::getClassA();

      echo “$a1 的類是 ”.get_class($a1).“ , $a2 是 ”.get_class($a1);if($a1 === $a2){

      echo “
      $a1 $a2 指向同一對(duì)象.”;

      }else{

      echo “
      $a1 $a2 不是一個(gè)對(duì)象.”;

      }

      //this is construction

      //this is construction

      //$a1 的類是 A , $a2 是 A

      //$a1 $a2 不是一個(gè)對(duì)象.?>

      15.3

      //不能用new實(shí)例化的類.
      //static的方法留給外部訪問.
      //在方法內(nèi)部返回實(shí)例.

      //定義靜態(tài)屬性保證這個(gè)實(shí)例能被靜態(tài)方法調(diào)用.

      //增加判斷部分.

      class A{

      private static $a = null;

      private function __construct(){}

      static function getClassA(){

      if(null == self::$a){

      self::$a = new A();

      }

      return self::$a;

      }

      }

      // 看到這里確實(shí)返回的是 A 的實(shí)例.但不是同一個(gè)對(duì)象.$a1 = A::getClassA();

      $a2 = A::getClassA();

      echo “$a1 的類是 ”.get_class($a1).“ , $a2 是 ”.get_class($a1);if($a1 === $a2){

      echo “
      $a1 $a2 指向同一對(duì)象.”;

      }else{

      echo “
      $a1 $a2 不是一個(gè)對(duì)象.”;

      }

      //$a1 的類是 A , $a2 是 A

      //$a1 $a2 指向同一對(duì)象.?>

      第五篇:總結(jié)PHP程序員最常犯的11個(gè)MySQL錯(cuò)誤

      總結(jié)PHP程序員最常犯的11個(gè)MySQL錯(cuò)誤

      對(duì)于大多數(shù)web應(yīng)用來說,數(shù)據(jù)庫(kù)都是一個(gè)十分基礎(chǔ)性的部分。如果你在使用PHP,那么你很可能也在使用MySQL—LAMP系列中舉足輕重的一份子。

      對(duì)于很多新手們來說,使用PHP可以在短短幾個(gè)小時(shí)之內(nèi)輕松地寫出具有特定功能的代碼。但是,構(gòu)建一個(gè)穩(wěn)定可靠的數(shù)據(jù)庫(kù)卻需要花上一些時(shí)日和相關(guān)技能。下面列舉了我曾經(jīng)犯過的最嚴(yán)重的11個(gè)MySQL相關(guān)的錯(cuò)誤(有些同樣也反映在其他語言/數(shù)據(jù)庫(kù)的使用上)。。

      1、使用MyISAM而不是InnoDB

      MySQL有很多數(shù)據(jù)庫(kù)引擎,但是你最可能碰到的就是MyISAM和InnoDB。

      MySQL 默認(rèn)使用的是MyISAM。但是,很多情況下這都是一個(gè)很糟糕的選擇,除非你在創(chuàng)建一個(gè)非常簡(jiǎn)單抑或?qū)嶒?yàn)性的數(shù)據(jù)庫(kù)。外鍵約束或者事務(wù)處理對(duì)于數(shù)據(jù)完整性 是非常重要的,但MyISAM都不支持這些。另外,當(dāng)有一條記錄在插入或者更新時(shí),整個(gè)數(shù)據(jù)表都被鎖定了,當(dāng)使用量增加的時(shí)候這會(huì)產(chǎn)生非常差的運(yùn)行效率。

      結(jié)論很簡(jiǎn)單:使用InnoDB。

      2、使用PHP的mysql函數(shù)

      PHP自產(chǎn)生之日就提供了MySQL庫(kù)函數(shù)(or near as makes no difference)。很多應(yīng)用仍然在使用類似mysql_connect、mysql_query、mysql_fetch_assoc等的函數(shù),盡管PHP手冊(cè)上說:

      如果你在使用MySQL v4.1.3或者更新版本,強(qiáng)烈推薦使用您使用mysqli擴(kuò)展。

      mysqli(MySQL的加強(qiáng)版擴(kuò)展)有以下幾個(gè)優(yōu)點(diǎn):

      可選的面向?qū)ο蠼涌?/p>

      prepared表達(dá)式,這有利于阻止SQL注入攻擊,還能提高性能

      支持更多的表達(dá)式和事務(wù)處理

      另外,如果你想支持多種數(shù)據(jù)庫(kù)系統(tǒng),你還可以考慮PDO。

      3、沒有處理用戶輸入

      這或者可以這樣說#1:永遠(yuǎn)不要相信用戶的輸入。用服務(wù)器端的PHP驗(yàn)證每個(gè)字符串,不要寄希望與JavaScript。最簡(jiǎn)單的SQL注入攻擊會(huì)利用如下的代碼:

      $username = $_POST[“name”];$password = $_POST[“password”];$sql = “SELECT userid FROM usertable WHERE username='$username' AND password='$password';”;// run query...只要在username字段輸入“admin';--”,這樣就會(huì)被黑到,相應(yīng)的SQL語句如下:

      SELECT userid FROM usertable WHERE username='admin';

      狡猾的黑客可以以admin登錄,他們不需要知道密碼,因?yàn)槊艽a段被注釋掉了。

      4、沒有使用UTF-8

      美國(guó)、英國(guó)和澳大利亞的我們很少考慮除英語之外的其他語言。我們很得意地完成了自己的“杰作”卻發(fā)現(xiàn)它們并不能在其他地方正常運(yùn)行。

      UTF-8解決了很多國(guó)際化問題。雖然在PHP v6.0之前它還不能很好地被支持,但這并不影響你把MySQL字符集設(shè)為UTF-8。

      5、相對(duì)于SQL,偏愛PHP

      如果你接觸MySQL不久,那么你會(huì)偏向于使用你已經(jīng)掌握的語言來解決問題,這樣會(huì)導(dǎo)致寫出一些冗余、低效率的代碼。比如,你不會(huì)使用MySQL自帶的AVG()函數(shù),卻會(huì)先對(duì)記錄集中的值求和然后用PHP循環(huán)來計(jì)算平均值。

      此外,請(qǐng)注意PHP循環(huán)中的SQL查詢。通常來說,執(zhí)行一個(gè)查詢比在結(jié)果中迭代更有效率。

      所以,在分析數(shù)據(jù)的時(shí)候請(qǐng)利用數(shù)據(jù)庫(kù)系統(tǒng)的優(yōu)勢(shì),懂一些SQL的知識(shí)將大有裨益。

      6、沒有優(yōu)化數(shù)據(jù)庫(kù)查詢

      99%的PHP性能問題都是由數(shù)據(jù)庫(kù)引起的,僅僅一個(gè)糟糕的SQL查詢就能讓你的web應(yīng)用徹底癱瘓。MySQL的EXPLAIN statement、Query Profiler,還有很多其他的工具將會(huì)幫助你找出這些萬惡的SELECT。

      7、不能正確使用數(shù)據(jù)類型

      MySQL提供了諸如numeric、string和date等的數(shù)據(jù)類型。如果你想存儲(chǔ)一個(gè)時(shí)間,那么使用DATE或者DATETIME類型。如果這個(gè)時(shí)候用INTEGER或者STRING類型的話,那么將會(huì)使得SQL查詢非常復(fù)雜,前提是你能使用INTEGER或者STRING來定義那個(gè)類型。

      很多人傾向于擅自自定義一些數(shù)據(jù)的格式,比如,使用string來存儲(chǔ)序列化的PHP對(duì)象。這樣的話數(shù)據(jù)庫(kù)管理起來可能會(huì)變得簡(jiǎn)單些,但會(huì)使得MySQL成為一個(gè)糟糕的數(shù)據(jù)存儲(chǔ)而且之后很可能會(huì)引起故障。

      8、在查詢中使用*

      永遠(yuǎn)不要使用*來返回一個(gè)數(shù)據(jù)表所有列的數(shù)據(jù)。這是懶惰:你應(yīng)該提取你需要的數(shù)據(jù)。就算你需要所有字段,你的數(shù)據(jù)表也不可避免的會(huì)產(chǎn)生變化。

      9、不使用索引或者過度使用索引

      一般性原則是這樣的:select語句中的任何一個(gè)where子句表示的字段都應(yīng)該使用索引。

      舉 個(gè)例子,假設(shè)我們有一個(gè)user表,包括numeric ID(主鍵)和email address。登錄的時(shí)候,MySQL必須以一個(gè)email為依據(jù)查找正確的ID。如果使用了索引的話(這里指email),那么MySQL就能夠使用 更快的搜索算法來定位email,甚至可以說是即時(shí)實(shí)現(xiàn)。否則,MySQL就只能順序地檢查每一條記錄直到找到正確的email address。

      有的人會(huì)在每個(gè)字段上都添加索引,遺憾的是,執(zhí)行了INSERT或者UPDATE之后這些索引都需要重新生成,這樣就會(huì)影響性能。所以,只在需要的時(shí)候添加索引。

      10、忘記備份!

      雖然比較罕見,但是數(shù)據(jù)庫(kù)還是有崩潰的危險(xiǎn)。硬盤有可能損壞,服務(wù)器有可能崩潰,web主機(jī)提供商有可能會(huì)破產(chǎn)!丟失MySQL數(shù)據(jù)將會(huì)是災(zāi)難性的,所以請(qǐng)確保你已經(jīng)使用了自動(dòng)備份或者已經(jīng)復(fù)制到位。

      11、Bonus mistake-不考慮使用其他數(shù)據(jù)庫(kù)

      對(duì)于PHP開發(fā)人員來說,MySQL可能是使用最廣泛的數(shù)據(jù)庫(kù)系統(tǒng),但并不是唯一的選擇。PostgreSQL和Firebird是最強(qiáng)有力的競(jìng)爭(zhēng)者:這個(gè)兩者都是開源的,而且都沒有被公司收購(gòu)。微軟提供了sql server Express,甲骨文提供了10g Express,這兩者都是企業(yè)級(jí)數(shù)據(jù)庫(kù)的免費(fèi)版本。有時(shí)候,對(duì)于一個(gè)較小的web應(yīng)用或者嵌入式應(yīng)用,SQLite也不失為一個(gè)可行的替代方案。

      下載PHP最優(yōu)秀的年終總結(jié)word格式文檔
      下載PHP最優(yōu)秀的年終總結(jié).doc
      將本文檔下載到自己電腦,方便修改和收藏,請(qǐng)勿使用迅雷等下載。
      點(diǎn)此處下載文檔

      文檔為doc格式


      聲明:本文內(nèi)容由互聯(lián)網(wǎng)用戶自發(fā)貢獻(xiàn)自行上傳,本網(wǎng)站不擁有所有權(quán),未作人工編輯處理,也不承擔(dān)相關(guān)法律責(zé)任。如果您發(fā)現(xiàn)有涉嫌版權(quán)的內(nèi)容,歡迎發(fā)送郵件至:645879355@qq.com 進(jìn)行舉報(bào),并提供相關(guān)證據(jù),工作人員會(huì)在5個(gè)工作日內(nèi)聯(lián)系你,一經(jīng)查實(shí),本站將立刻刪除涉嫌侵權(quán)內(nèi)容。

      相關(guān)范文推薦

        PHP課程總結(jié)(精選5篇)

        PHP課程總結(jié) 這個(gè)學(xué)期開設(shè)的PHP課程是由聶老師上的,老師很詳細(xì)的跟我們介紹PHP的語法,然后用實(shí)例跟我們講解,每節(jié)課老師都盡心盡責(zé),可是無奈班上的人聽的還是寥寥無幾,真正掌握的......

        php程序員優(yōu)秀求職簡(jiǎn)歷

        php程序員優(yōu)秀求職簡(jiǎn)歷 2012年04月12日北京優(yōu)秀的求職簡(jiǎn)歷信息由教師范文吧簡(jiǎn)歷頻道為求職者提供. 姓名 自我評(píng)價(jià) 精通PHP/mySQL應(yīng)用,能編寫網(wǎng)絡(luò)基礎(chǔ)應(yīng)用程序與常見功能模塊,......

        PHP學(xué)習(xí)總結(jié)的一些經(jīng)驗(yàn)

        其實(shí)我也是一樣很新的新手,上PHP100學(xué)習(xí)視頻并在論壇里學(xué)習(xí)其實(shí)也就是一個(gè)月前的事.雖然早在8月份花過一個(gè)星期看完w3school的PHP教 程,了解了許多PHP知識(shí).但始終是缺乏一個(gè)......

        總結(jié)PHP xajax應(yīng)用方案

        一、 HelloWrold步驟 PHP代碼 //服務(wù)器端 require_once ("../../xajax.inc.php"); //定義處理函數(shù), //并在處理函數(shù)中實(shí)例xajaxResponse對(duì)象, //調(diào)用其方法控制控......

        PHP核心知識(shí)階段總結(jié)

        Require和require_once區(qū)別 Include和include_once與require和require_once行為是相類似的,因此只說一類就可以了 區(qū)別只是報(bào)錯(cuò)級(jí)別的不同。 加上once代表包含文件只被包含......

        PHP網(wǎng)站漏洞的相關(guān)總結(jié)

        PHP網(wǎng)站漏洞的相關(guān)總結(jié) NB聯(lián)盟-zwell 從現(xiàn)在的網(wǎng)絡(luò)安全來看,大家最關(guān)注和接觸最多的WEB頁(yè)面漏洞應(yīng)該是ASP了,在這方面,小竹是專家,我沒發(fā)言權(quán).然而在PHP方面來看,也同樣存......

        PHP基礎(chǔ)階段知識(shí)總結(jié)[大全]

        php基礎(chǔ)階段內(nèi)容: 1 php 基本概念,常規(guī)語法 什么是php 一種服務(wù)器端的 HTML 腳本/編程語言,是一種簡(jiǎn)單的、面向?qū)ο蟮?、解釋型的、健壯的、安全的、性能非常之高的、?dú)立于......

        php 試題總結(jié)(附參考答案)

        php 試題總結(jié)(附參考答案) 1 JavaScript腳本語言的前身是B A.Basic B.Live Script C.Oak D.VBScript 2使用CSS對(duì)文本進(jìn)行修飾,若使文本閃爍,text-decoration的取值為D A.n......