第一篇:四川商會php技能培訓中心學習總結(一)
四川商會php技能培訓中心學習總結
(一)在四川商會培訓php學習到今天也是快一個月時間了,然而到今天為止第一個php寫的網站已經快要見亮了,中午后臺部分全部功能完成意味著以后做別的站可以拿來就用,不用再費太多精力編寫了,現在就簡單寫寫學習php的這一個月我遇到的主要問題。問題1:環境搭配
php最經典的組合當然是LAMP(Linux+Apache+MySQL+PHP)了,不過我沒有條件和精力弄Linux所以用Windows 2003代替Linux了,自己調試用,又不是做服務器,所以不要求性能足夠用了。
本身我的機器是Win2003+IIS+Framework環境能跑起來ASP和.net,并且裝有jdk+tomcat+oracle還能跑起來jsp,本打算不破壞這些環境再安裝apache和mysql,不過困難重重啊。
于是放棄jsp環境,并且用ghost備份了asp環境,刪掉IIS后重新安裝PHP環境,環境還是很好搭的,在百度上輕易的找到教程照著安裝就可以Apache+PHP+MySQL+PHPMyAdmin,沒有安裝Zend,以后深入學習的時候再說吧,沒有研究明白多個網站的時候怎么存在不同的路徑運行在不同端口,也先不管了,現在80端口跑吧,環境調試好了以后備份了一個ghost,算是php環境成功搭起來了。
問題2:對utf-8編碼文件的標記BOM導致的頁面空行
這個問題以前在學習xhtml+css的時候遇到過,那時候是因為文檔聲明類型前面加別的代碼了或者沒有寫文檔聲明類型xhtml1.0卻用w3c的標準做頁面導致的,起初我以為也是把require寫在文檔聲明前面出的問題呢,后來反復調試發現不是這么簡單,后來上百度搜索了很多關于require引起空行的問題,有一個牛人提到了要在dreamweaver里面ctrl+j把utf-8編碼的BOM去掉,當時也不懂BOM是啥,說去掉就去掉吧,確實解決問題了,這算是把這一關過去了,不過后面還有utf-8的問題呢,也是跟這個有關系。
問題3:php下checkbox的取值問題
這是我發現php唯一一個不方便的地方,不像asp那樣,所有同名的checkbox的值存成一個集合,php只能取同名里最后一個checkbox的值,在做多數據where in(aa,bb,cc,dd)查詢的時候很不方便,只能用js+一個hidden input的方法實現,雖然有點小麻煩,不過不是大問題,很容易就解決了,上網查了一下也確實只有這么才能解決!
問題4:Access庫轉到MySQL的問題
畢竟數據庫已經設計好了,再在PHPMyAdmin中建一次表也很麻煩,索性找個軟件來直接轉庫,還不錯讓我找到各爆好用的軟件,不過全英文界面,名字沒記住,明天去公司看看再發上來,庫很輕松的轉過來了,但是我手很賤,看到MySQL里面的data文件夾下有和我建的數據庫一樣名字的文件夾,我以為有這個文件夾就不用建庫倒庫了,一時興起把沒用的都刪掉了,問題來了PHPMyAdmin連不上庫了,這個倒是好解決,重裝了一次MySQL解決問題,可是我沒備份就換回ASP環境,再換回來的時候MySQL出大問題了,重裝都不管用了,上百度一頓神搜,最終csdn的牛人給了答案“把libmysql.dll和php5ts.dll考到system32下”,解決問題。
第二篇:四川商會php技能培訓中心學習總結(二)
四川商會php技能培訓中心學習總結
(二)問題5:NTFS權限問題。
這個問題ASP上也出現過,不過換在PHP環境就沒多一份心往這方面想,所以足足憋了我一上午,發現這個問題是在朋友的服務器上,前一天喝酒正好認識一個哥們兒遇到php建站的問題了,接著酒勁我就裝了一把,說我php多牛多牛啊,知道的我才學2星期,哈哈哈,第二天就給人家解決問題吧,牛都吹出去了也不能不管人家,連上服務器一看原來是安裝phpcms的時候遇到了MySQL問題安裝無法繼續進行了,百度上一頓神搜找到問題關鍵了是NTFS權限問題,這就好解決了,加個Internet來賓用戶就解決了,估計自己以后也會遇到這問題,所以早遇到比晚遇到強,關鍵時候知道怎么回事兒!
問題6:Cookies讀寫問題。
這個問題應該不是很大的問題,只不過當天馬上下班了,沒有來得及解決,第二天很輕易的就搞定了,剛開始學習肯定語句掌握的不多,以為$_COOKIE[“xxx”]既可以讀也可以寫呢,用到這兒的時候才發現部對路子,上網隨便一搜“php cookies 寫入”答案就來了,setcookie即可,真簡單啊。
問題7:php分頁。
用ASP的時候SQL語句也沒深入研究,根本就不知道limit這回事兒,我說以前看淘寶、百度的分頁上有0 20、20 20這樣的參數傳遞呢,都是干分頁用的,稍補了一堂SQL課程問題迎刃而解,頁數判斷那里原理都一樣就沒當成問題,一路綠燈解決戰斗!
問題8:創建utf-8文件寫入中文亂碼問題,問題2的后續問題。
一開始就把這個功能做好了,只不過沒用中文測試,后來做到有中文的地方發現這里不靈了,哎呀那個頭疼啊,這個問題收拾了我好幾天,一直沒解決,為了不被這個問題困擾,所以就先用英文寫入把這里條過去了,昨天必須得解決這里了,所以就硬下頭皮整吧,還是BOM的簽名問題,以下均為我自己理解,不知道對不對,Windows環境識別UTF-8與ANSI文件靠的是UTF-8文件前的一個叫做BOM簽名的東西,這個東西普通的文本編輯器是看不到的 xEF xBF xEE好像是這三個16進制字符,反正是三個東西,問題2里毛病也是他們三個整出來的,UTF-8在Windows下雖然要用這三個家伙區分,在php下確實沒有用的東西,要不問題2里面為啥要去掉BOM簽名呢,怪就怪我在做ASP的時候遇到過同樣的UTF-8文件寫入中文亂碼問題,所以就留了個心眼,先在網上艘了一個UTF-8文件在php寫入的函數,里面就把那三個討厭的東西加進去了,哎呀我去,這就是聰明反被聰明誤,這頓調試就是不行啊,后來我也是恍然大悟,把這三個家伙去掉了,問題解決了,那個暢快啊。
還有很多小問題就不細說了,比如$的轉義符是chr(36)啊,SQL中的關鍵詞from啊(在asp中不是關鍵詞),時間函數的使用(巨方便,比ASP的用著舒服)。
第三篇:php學習總結
調試/*………*/ //…….#..........插入時考慮清楚字段類型避免插入后出現缺值,亂碼
@ 屏蔽錯誤or die 條件顯示
以前學習php類的總結:
1.php中不能重載,但是能用子類覆蓋父類的方法名稱來實現新的重載
1.1 在子類中調用父類的覆蓋部分可以使用 父類名稱::方法名稱();
2.final 只能定義類和方法,不能使用final定義成員屬性,因為final是常量的意思,在php里定義常量使用的是define函數
2.1 final關鍵字標記的類不能被繼承
2.2 final關鍵字標記的方法不能被子類重寫
3.const是一個定義常量的關鍵字,在php中定義常量使用的是define()函數,但是在類里定義常量使用的是“const” 這個關鍵字
3.1在程序中不能修改它的值。
3.2 訪問const 修飾的成員屬性要使用類名,在本類的方法里使用“self”關鍵字,但不使用“$”符號,也不能使用對象來訪問。
4.static關鍵字可以描述類中的成員屬性和成員方法
4.1 static 的成員屬于類,而不屬于任何對象,4.2 static的成員是在類第一次被加載的時候分配的空間,其他類無法訪問的,只對類的實例共享,能一定程度對類該成員形成保護
4.3 靜態成員放到了“初始化靜態段”,在類第一次加載的時候放入的,可以讓堆內存里的每個對象共享。所以在靜態方法里,可以使用這個方法所在的類的“類名”,也可以使用“self”來訪問其他靜態成員。“self”代表這個靜態方法所在的類。
4.3.1 在類里的靜態方法是不能訪問類的非靜態成員的。
4.3.2 在類的非靜態方法里可以訪問靜態成員:”self:成員屬性“;
4.4類的靜態變量,非常類似全局變量,能夠被所有類的實例共享,類的靜態方法也是一樣,類似于全局函數。
4.5 在類內函數訪問靜態變量時前面加self::靜態函數
4.6 靜態變量可以在類外直接訪問,訪問方法是類名::靜態變量
4.7 靜態函數可以在類外直接訪問,訪問方式是類名::靜態函數
4.8 在類內靜態函數訪問另一個靜態函數時使用 類名::靜態函數名
4.8.1 靜態函數在類內訪問靜態變量時,訪問方式是類名::靜態變量
4.8.2 靜態函數在類內訪問靜態變量時,訪問方式除了是類名::靜態變量外,還可以使用self::靜態變量
4.9 在類內靜態函數訪問另一個靜態函數時除了使用 類名::靜態函數名外,還可以使用self::靜態函數名,也可以直接調用靜態函數
4.10 靜態函數內不能訪問非靜態變量
4.11 在類內靜態函數不能使用$this->非靜態函數名訪問非靜態函數,可以使用self::非靜態函數名
4.12
5.類里的”$this“,在php里面提供了一個本對象的引用$this,每個對象里面都有一個對象的引用$this來代表這個對象,完成對象內部成員的調用。
5.1 $this 就是對象內部代表這個對象的引用。
6.類里“self”,self 和$this相似,只不過self是代表這個靜態方法所在的類,所以在靜態方法里,可以使用這個方法所在的類的”類名“,也可以使用“self”來訪問其他的靜態成員,通常使用后者”self::成員屬性“。
7.類里”__“開頭的函數名
7.1類里”__“開頭的函數名都是在某一時刻不同情況下自動調用執行的方法。
7.2__toString()方法也是自動被調用,是直接輸出對象引用時自動調用的。比如“$p = new Person()”,直接用echo輸出$p會產生錯誤,如果在類里定義了__toString()方法,再用echo直接輸出對象引用的時候就不會產生錯誤了
8.對象串行化
8.1 __sleep()方法,在對象串行化的時候,會調用一個__sleep()方法來完成一些睡前的事情,__sleep()函數不接受任何參數,但返回一個數組,其中包含需要串行化的屬性。未被包含的屬性降在串行化時被忽略,如果沒有__sleep()方法,php將保存所以屬性.8.2 __wakeup()方法,在重新醒來時,即由二進制串重新組成一個對象的時候,則會自動調用__wakeup(),做一些對象醒來就要做的動作。
8.3 有時你可能需要一個對象在反串行化后立即執行.為了這樣的目的,PHP會自動尋找__sleep和__wakeup方法.9.protected 成員能被同個類中的所有方法和繼承出的類的中所有方法訪問到,不能被父類的實例直接訪問。protected and public 可以動態綁定
10.private 大部分private屬性仍然可以被外部代碼共享.解決方法是用一對public方法,一個是get(獲取屬性的值),另一個是set(設置屬性的值).10.1private 不可以動態綁定。Private成員只存在于它們所在的類內部.不像public和protected成員那樣,PHP模擬靜態綁定.10.2 什么時候用到private?private成員只有當你不想讓子類繼承改變或特殊化父類的行為時才用到,這種情況比你想像的要少,通常來說,一個好的對象分層結構應當允許絕大多數功能被子類特殊化,改進,或改變—這是面向對象編程的基礎之一。一定的情況下需要private方法或變量,例如當你確信你不想允許子類改變父類中的某個特定的部份。
11.抽象類:抽象方法是就像子類中一般的方法的占位符(占個地方但不起作用),它與一般方法不同—沒有任何代碼.如果類中存在一個或更多抽象方法, 那么這個類就成了抽象類.你不能實例化抽象類.你必須繼承它們,然后實例化子類.你也可以把抽象類看成是子類的一個模板.如果你覆寫所有的抽象方法, 子類就變成一個普通的類.如果沒有覆寫所有方法, 子類仍是抽象的.如果一個類中中包含有抽象方法(哪怕只有一個), 你必須聲明這個類是抽象的, 在class關鍵字前加上abstract.聲明抽象方法的語法與聲明一般方法不同.抽象方法的沒有像一般方法那樣包含在大括號{}中的主體部份,并用分號;來結束.12.接口:如果你建立了一個只有抽象方法的類,你就定義了一個接口(interface).為了說明這種情況, PHP中有interface 和implements關鍵字.你可以用interface來代替抽象類, 用implements來代替extends來說明你的類定義或使用一個接口.例如, 你可以寫一個myClass implements myIterface.這兩種方法可以依個人偏愛來選擇.12.1 如果接口中出現非抽象方法.會報錯
12.2 接口中的方法默認是public 型的.其它類型的修飾符,不能修飾接口中的抽象方法.12.3 即使接口中所有的方法都是抽象方法,也不能使用 abstract 修飾.也不能用final
12.4 即使接口中所有的方法都是抽象方法,在接口中,可以聲明靜態方法.12.5 在接口中可以有常量,e.g.:
interfaceUser{
const MAX_GRADE = 99;
function getName();
function setName($_name);
}
?>
13.Namespace關鍵字給一塊代碼命名.在這個代碼塊外部,腳本必須用操作符::加上命名空間的名稱來引用這個代碼塊.引用靜態的類成員也是用相同的方法.在命名空間內代碼不需要聲明命名空間, 它本身就是默認的.這種方法比添加前綴的方法好.你的代碼可由此變得更加緊湊和可讀.你可能想知道是否可以建立分層的(嵌套的)命名空間.答案是不可以.但你可以在命名空間名稱后加上冒號, 你可以再次調用在名稱中不包含冒號的變量,函數和類.命名空間允許存在冒號,只要不是第一個字符和最后一個字符或接著另一個冒號.命名空間的名稱中的冒號對于PHP來說沒有任何意義, 但如果你用他們來區分邏輯上的區塊, 他們可以很好地說明你的代碼中的父子(parent-child)關系.14.__toString()打印對象會調用它的__toString方法.15.不能實例化的類
//
//當__construct()為public時可以實例化
class A{
private function __construct(){}
}
$a = new A();//fail
?>
15.1
//static的方法留給外部訪問.
class A{
private function __construct(){}
static function getClassA(){
return “這里是后門,可以通過這里進入類內部..”;
}
}
echo A::getClassA();
?>
15.2
//不能用new實例化的類.
//static的方法留給外部訪問.
//在方法內部返回實例.
class A{
private function __construct(){
echo “this is construction
n”;
}
static function getClassA(){
$a = new A();
return $a;
}
}
// 看到這里確實返回的是 A 的實例.但不是同一個對象.$a1 = A::getClassA();
$a2 = A::getClassA();
echo “$a1 的類是 ”.get_class($a1).“ , $a2 是 ”.get_class($a1);if($a1 === $a2){
echo “
$a1 $a2 指向同一對象.”;
}else{
echo “
$a1 $a2 不是一個對象.”;
}
//this is construction
//this is construction
//$a1 的類是 A , $a2 是 A
//$a1 $a2 不是一個對象.?>
15.3
//不能用new實例化的類.
//static的方法留給外部訪問.
//在方法內部返回實例.
//定義靜態屬性保證這個實例能被靜態方法調用.
//增加判斷部分.
class A{
private static $a = null;
private function __construct(){}
static function getClassA(){
if(null == self::$a){
self::$a = new A();
}
return self::$a;
}
}
// 看到這里確實返回的是 A 的實例.但不是同一個對象.$a1 = A::getClassA();
$a2 = A::getClassA();
echo “$a1 的類是 ”.get_class($a1).“ , $a2 是 ”.get_class($a1);if($a1 === $a2){
echo “
$a1 $a2 指向同一對象.”;
}else{
echo “
$a1 $a2 不是一個對象.”;
}
//$a1 的類是 A , $a2 是 A
//$a1 $a2 指向同一對象.?>
第四篇:培訓中心“五個一”活動總結
培訓中心“五個一”活動總結
為深入貫徹落實科學發展觀,切實加強自身建設,不斷提高科室人員素質,增強專業能力,為我礦的發展做出更大貢獻,根據集團公司文件要求。我科室組織開展了“五個一”活動。活動取得了一定成效,現將活動總結如下:
一、指導思想
圍繞集團確定的發展戰略目標,以推行“五個一”活動為抓手,大力營造工作學習化,學習工作化的氛圍,引導員工樹立全員學習、終身學習的理念,努力掌握和運用科學的新思想、新知識、新經驗,深化創新成果學習,促使全體員工的學習不斷提升、知識素養不斷提高,為實現“綠色山煤、幸福山煤、百年山煤”的共同愿景提供強大的思想保證和智力支持。
二、組織領導
制定了開展“五個一”活動實施方案,有培訓中心主任組織學習并親自授課學習。
三、活動內容和開展情況
(一)每周開展一次培訓。我中心每周二集中學習一次培訓的專業知識學習,同時做好筆記,不斷促使我們掌握本專業最前沿理論和最尖端技術,成為專業工作的行家里手、領導決策的好參謀、服務基層的好幫手。
(二)每月讀一本書。為提高我中心人員對各工種的了解,堅持
每月讀一本關于各工種的書籍,只有了解工種才能更好的組織培訓,用學習來提高我們的工作能力。
(三)每季度進行一次專題講座。今年以來,根據工作實際,以“干部上講臺、培訓到現場”活動為抓手。各科室領導走上講臺,為員工宣講業務知識,增強員工知識,為推行我礦跨越發展。
(四)每半年進行一次小結。根據我科室業務所需,對一線隊組進行走訪,了解一線隊組的需求和意見,并對所提出的問題進行答復和處理情況記錄。并對半年的“五個一”活動開展情況進行總結分析,發現問題并解決,促進我科工作的順利開展。
(五)每年進行一次評選表彰。積極做好科室學習型先進集體和個人的評選活動。
四、要求
1、要學以致用,把創建學習型企業與推動企業機制創新、管理創新、技術創新結合起來,促進科室工作健康發展。
2、建立有效的學習制度,把創建活動落到實處。
第五篇:PHP學習總結的一些經驗
其實我也是一樣很新的新手,上PHP100學習視頻并在論壇里學習其實也就是一個月前的事.雖然早在8月份花過一個星期看完w3school的PHP教 程,了解了許多PHP知識.但始終是缺乏一個與眾多朋友學習和交流的平臺,所以一下子在幾周后又把PHP又忘得七七八八了,有幸在10月尾了解到了 PHP100視頻和論壇,不僅可以系統地學習下PHP,更可以和很多朋友一起學習成長這更是件好事.在php100視頻中學到了許多,而 論壇中看帖和回帖也更讓我鞏固了學習的知識并讓我學到了很多,這不僅不會讓我又把PHP知識快速忘記(因為工作中用是ASP,而PHP不會在工作中用,所 以忘得快),反而在取得進步的同時,我也能幫助一些人,這也是一樣是學習勝利的過程,我喜歡并享受其中.以下是我上論壇以來的回復總結,將不斷持續總結.希望有利于與我一樣的新手一起成長.首先來個,題前語:
任何的學習,都需要自信,再新的新手也應該拋棄心中的恐懼,有時關鍵在于你心平下來,踏入學習后,你將慢慢化開迷惑,獲得信心,贏取自信!讓我們共同進步.----------
==========
Undefined index問題
是運行的時候出現類似:Notice: Undefined index: action in D:wampwww.tmdps.cn/read.php?tid=15843&page=1#138857
是 php 配置的事情
這個錯誤是因為 php 頁面中的變量沒有初始化而導致的!
可以通過設置PHP.INI搞好,也可以在變量前面 加上一個 @ 就可以解決這個地方的問題了!
如這里指示第三行
Notice: Undefined index: action in D:wampwww.tmdps.cn/2009/0617/6463.php
----------
==========
遇到頁面明確提示你錯誤的,并有顯示如何錯的,建議先把語句復制部分重點詞句或全部語句到百度或
google,更快速讓在你排查錯誤找到方法.其實這也是一種高效有益的學習方法,畢竟在工作中,遇到些沒
遇過的新問題,有時都需要借助網上的資源給自己靈感和助力,本人就一天不下幾十次用百度搜索.如程序中遇到諸如含提示:
顯示的錯誤為:
Parse error: syntax error, unexpected $end in D:wampwwwtestlist.php on line 21
那么你就可以把 syntax error, unexpected $end 作為關鍵詞到百度搜索,那么你即刻可以得到助力甚
至答案.以上那句舉例的錯誤是因為:短標簽沒有打開.解決方法是打開php.ini把short_open_tag短標簽
打開,重啟服務即可
----------
==========
提示的時候,有時順便把代碼帖上帖子是必要的,這樣才能快速地在別人的幫助下問題得到解決
----------
==========
對單引號和雙引號有迷惑,大家可以看這篇文章解下惑:
----------
==========
在調試程序時,經常要用到echo 你的sql語句來,檢查傳值后,sql變成了什么樣的情況,以便排查錯誤.----------
==========
向數據庫表插入數據
INSERT INTO 語句用于向數據庫表添加新紀錄。
語法
INSERT INTO table_name VALUES(value1, value2,....)--此種情況是需要按你表中所有字段的順
序全部value填上!
您還可以規定希望在其中插入數據的列:
INSERT INTO table_name(column1, column2,...)VALUES(value1, value2,....)--張老師明確建
議用此種方法!
----------
==========
有人疑惑,$_POST或$GET取得時的引號問題:其實是要不要引號,單引號或雙引號都是沒有問題的.如, $_POST[name]和$_POST['name']和$_POST[“name”]都是在windows下一樣的,在linux下情況具體沒
用過,不知道,還望高手告知.----------
==========
針對多數人的留言板課程中許多問題(如,insert into存不進數據問題)的總結:
1.檢查你數據庫表的結構是否正確,如id是否設為自增
2.insert into語句是否正確,如單詞是否正確,insert into...values...3.是否將`(反斜點,在1鍵前)號和'(引號)是否使用位置正確,正確的方法是:`應該放在表和字段邊,而'
是放在字符串型(或者說是非數字型)的值邊上
4.檢查你的各語句,是否在結尾將分號(;)正確結束
5.檢查你的submit表單項的name值是否你判斷的取值,如
value=“提交”>時,你的判斷是否提交應是 if($_POST[submit]){...};當你的是
type=“submit” name=“othername” value=“提交”>時,你的判斷是否提交應是 if($_POST
[othername]){...}
6.檢查你的$_POST是否大寫,當你寫成$_post是不行的,因為$_GET,$_POST等,都是PHP系統環境的硬性用
法
7.用echo 輸出你的sql檢查傳值情況
8.檢查你的短標簽是否打開
9.注意你的method是get還是post
10.檢查你的表單相關單詞或引號是否書寫正確.很多莫名其妙的問題,多是細節問題.要小心查對才能看
出來.----------
sql語句中表名和字段名在windows的情況下是可以不加小斜點(鍵盤左上角1鍵前的那個點鍵)的,但聽說
在linux中不加會引出些問題,兼容的寫法是有小斜點.如:windows下:
$sql=“select * from table ”
和
$sql=“select * from `table` ”
是效果一樣的再次重點提示是:
`(反斜點,在1鍵前)號和'(引號)使用位置,正確的方法是:`應該放在表和字段邊,而'是放在字符串型(或
者說是非數字型)的值邊
----------
==========
php100第十三講的page.PHP中的翻頁顯示信息有問題的解決方法:
因為頁面沒有取值到URL值的page,所以在函數內的page會一直是1,所以會一直是第1頁的數據
解決方法,就是在調用函數前把page取得就好了!函數里會把取到的page值作為全局變量傳入函數使用的了!
include(“conn.php”);
$nump=mysql_query(“SELECT * FROM `test`”);
$total=mysql_num_rows($nump);
//調用pageft(),每頁顯示10條信息(使用默認的20時,可以省略此參數),使用本頁URL(默認,所
以省略掉)。
$page=$_GET[page];//------------------------------在這里加入這行就OK了!
_PAGEFT($total,5);
echo $pagenav;
$query=mysql_query(“SELECT * FROM `test` limit $firstcount,$displaypg ”);//---見下面 while($row=mysql_fetch_array($query)){
echo “
”.$row[name].“ | ”.$row[sex];
}
以上的調試方法,其實你只要學下張老師把sql語句輸出來看下,你就知道是怎么回事了!
echo $sql=“SELECT * FROM `test` limit $firstcount,$displaypg ”;
$result=mysql_query($sql);
----------
==========
分頁有問題的朋友,不妨看下如下:
關于分頁,這有一篇論壇朋友的學習心得,學習下,你也許有所得:
另有一篇本人轉發上去的分頁講解:
----------
==========
關于:mysql_fetch_array
mysql_fetch_array 調用一次會把指針指向的記錄放入數據,并指向下一條記錄
======================....回復的太多了,總結又需較多時間,暫時總結到此,總結未完,待續.....