當前位置:首頁 » 編程語言 » php靜態

php靜態

發布時間: 2022-01-10 17:51:58

A. php 靜態方法 是什麼意思

<?php
header('content-type:text/html;charset=utf-8');
/*
普通方法,存放類內,只有一份
靜態方法,也是存放於類內,只有一份
區別在於:普通方法需要對象去調用,需要綁定$this
即,普通方法,必須要有對象,然後讓對象來調用
而靜態方法,不屬於哪一個對象,因此不需要綁定$this
即,不需要對象也可以調用
*/
class Human{
static public $head=1;
public function easyeat(){
echo '普通方法吃飯<br />';
}
static public function eat(){
echo '靜態方法吃飯<br />';
}
public function intro(){
echo $this->name;
}
}
Error_reporting(E_ALL|E_STRICT);
//此時沒有對象!方法可以執行
Human::eat();
/*
以下方法easyeat是一個非靜態方法,就由對象來調用,但,用類來調用此方法來也可以執行,而嚴格狀態下,此方法會執行,同時報錯,
Strict Standards: Non-static method Human::easyeat() should not be called statically in D:\application\PHPnow-1.5.6\htdocs\yan18\types\staticfun.php on line 32
*/
Human::easyeat();
/*
接上,從邏輯來理解,如果用類名靜態調用非靜態(普通)方法
比如:intro()
那麼,這個$this是指哪個對象呢??
因此會報錯,因為找不到對象!
Fatal error: Using $this when not in object context in D:\application\PHPnow-1.5.6\htdocs\yan18\types\staticfun.php on line 23
*/
Human::intro();
/*
如上分析,其實,非靜態方法,是不能由類名靜態調用的,但目前,php中的面向對象檢測不夠嚴格,只要靜態方法中沒有$this關鍵字,就會轉化成靜態方法來處理!
*/
$li=new Human();
$li->eat();
/*
總結:
類》訪問->靜態方法(類的方法)->可以
類》訪問->普通方法(對象的方法)->不可以(雖然方法里不用$this關鍵字時,可以!但不支持這種寫法)
對象》訪問》靜態方法(類的方法)->可以
對象》訪問》普通方法(對象的方法)->可以
*/
?>

B. php 什麼時候 靜態方法

當一個方法被執行時才占內存,執行完畢就釋放了,靜態函數載入時會放到靜態區,暫時不佔內存

C. php靜態屬性跟常量有什麼區別啊

類的靜態屬性. 會在類文件載入的時候, 就初始化.
屬性值是可以更改的.
常量...一旦定義了. 就無法變更值..
這應該算是最大區別.

另外, 常量只能是簡單的數據類型(如: int , string , boolean,float , double) ,
類的靜態屬性, 可以是php所支持的任意變數類型(但初始化的時候. 只能是簡單數據類型, 數組)

D. php中static靜態類與static 靜態變數用法區別

sybase_connect
連上資料庫
語法: int sybase_connect(string [servername], string [username], string [password]);
返回值: 整數
函數種類: 資料庫功能
本函數用來打開與 Sybase 資料庫的連接。參數 servername 為欲連上的資料庫伺服器名稱。參數 username 及 password 可省略,分別為連接使用的帳號及密碼。使用本函數需注意早點關閉資料庫,以減少系統的負擔。連接成功則返回資料庫的連接代號,失敗返回 false 值。

E. php如何實現網頁靜態

一、靜態化的優點:
1有利於搜索引擎收錄網站頁面的信息:搜索引擎更喜歡靜態的,更變於抓取,搜索引擎SEO排名會更容易提高。
2靜態網頁化網頁穩定
3可以提高網頁載入速度
4減輕伺服器負擔,瀏覽器不需要頻發調用資料庫。
5資料庫出錯不會影響正常訪問
二、偽靜態
PHP偽靜態:是利用Apache mod_rewite實現url重寫的方法
改寫訪問地址,能夠通過URL的PATHINFO模式來改動它。讓它看上去更像一個靜態頁面。從而有更大的幾率被搜索引擎抓取和收錄,僅是對搜索引擎比較友好,偽靜態化
三、純靜態化
純靜態化,就是生成HTML文件的方式,我們須要開啟PHP自帶的緩存機制,即ob_start來開啟緩存。而且在ob_start之前不能有不論什麼輸出,否則運行失敗,然後我們用ob_get_contents函數來獲取緩存中的內容,該函數會返回一個字元串。第三個函數就是ob_end_clean,它用來清空緩存中的內容而且關閉,成功返回True,失敗返回False。
<?php
if(file_exists("match.html") && (time()-filemtime("match.html"))<300)
{
//如果存在對應的靜態文件,則直接訪問
require_once("match.html");
}else{
//這里用數組來模擬資料庫操作,現實一般都是操作資料庫得到對應數據
$student = array("huangxing","chenyuwei",'xufei','zhangjingwen','xuepei');
ob_start();
//載入模板
require_once("muban.php");
file_put_contents("match.html",ob_get_clean());
require_once('match.html');
}

F. php的靜態變數究竟有什麼作用

一、靜態變數具有這樣的特性:


當在某函數里定義一個靜態變數後,這個變數不會即使函數退出了,在下次調用這個函數時,它會使用前次被調用後留下的值。


此外,雖然該變數不隨函數的退出而繼續存在,但函數的外部並不能使用它。


因此,靜態變數的應用時機如下:


當多次調用一個函數,且要求在調用之間保留某些變數的值時,可考慮採用靜態局部變數。


雖然用全局變數也可以達到上述目的,但全局變數有時會造成意外的副作用,因此仍以採用局部靜態變數為宜。


以下是某應用中的示例代碼:

<?PHP
functionTest()
{
static$count=0;
$count++;
echo$count;
if($count<10){
Test();
}
$count--;
}
?>


二、對於類中定義的靜態變數來說,簡單點說,類的靜態成員可以不用實例化而直接使用。

G. PHP變數的靜態范圍是什麼

正常情況下變數是在運行完當前頁面後進行銷毀的(PHP自己的特性),如果不想銷毀可以使用靜態變數.新手的話,三人行慕課上可以學習

H. [php]怎麼能改成靜態的啊

這個就叫做靜態化了,常見的方法有幾種:
1、用smarty模板,是一種緩存機制,簡單學習一下就好了;
2、把頁面全部生成了靜態html文件,常見的方法是按照網頁的規律,用正則匹配網址,然後確定一個靜態的html路徑,路徑存到資料庫里,生成為html文件,然後鏈接全部讀取html的路徑。
3、偽靜態,就是伺服器把地址偽裝成html格式的,其實不是真正的靜態html文件。可以搜索:apache rewrite 重寫。是根據網址的規則,用正則表達式匹配的,比如新聞頁面news.php?id=100,匹配成news/100.html。

I. PHP靜態方法和非靜態方法的區別

靜態方法必須使用static關鍵字聲明,面向對象編程中我們通常通過類的實例(而不是類的本身)來調用類,類其實是對象的模板,但是靜態方法區別於普通類,它不僅可以通過類的實例來調用,還可以通過類來訪問他們,比如 Game::getGame(); 使用類調用的時候使用::,在當前類調用還可以使用self關鍵字,比如 self::getGame(); 靜態方法是以類為作用域,不能訪問類中的普通屬性,因為他們屬於一個對象,但可以訪問靜態屬性。不知道你明白了沒有

熱點內容
安卓上哪裡下大型游戲 發布:2024-12-23 15:10:58 瀏覽:189
明日之後目前適用於什麼配置 發布:2024-12-23 14:56:09 瀏覽:56
php全形半形 發布:2024-12-23 14:55:17 瀏覽:829
手機上傳助手 發布:2024-12-23 14:55:14 瀏覽:733
什麼樣的主機配置吃雞開全效 發布:2024-12-23 14:55:13 瀏覽:831
安卓我的世界114版本有什麼 發布:2024-12-23 14:42:17 瀏覽:711
vbox源碼 發布:2024-12-23 14:41:32 瀏覽:279
詩經是怎麼存儲 發布:2024-12-23 14:41:29 瀏覽:661
屏蔽視頻廣告腳本 發布:2024-12-23 14:41:24 瀏覽:420
php解析pdf 發布:2024-12-23 14:40:01 瀏覽:821