php類中的各種攔截器用法分析,php類攔截用法_PHP教程

來源:互聯網
上載者:User

php類中的各種攔截器用法分析,php類攔截用法


本文執行個體講述了php類中的各種攔截器用法。分享給大家供大家參考。具體用法分析如下:

1、__get( $property ) 訪問未定義的屬性時調用

複製代碼 代碼如下:class lanjie
{
function __get($name)
{
echo $name." property not found! ";
}
}

$ob = new lanjie();
echo $ob->g;

當我們調用對象$ob未定義的屬性g時,調用攔截器__get()方法,輸出"g property not found!”;

2、__set( $property , $value ) 給未定義的屬性調用時賦值

複製代碼 代碼如下:class person
{
private $_age;
private $_name;
function __set($name, $value)
{
$method = "set". ucfirst($name);
echo $method;
if(method_exists($this, $method) )
{
return $this->$method( $value );
}
}

function setName( $name )
{
$this->_name = $name;
if( !is_null($this->_name) )
{
$this->_name = strtoupper($this->_name);
}
}
function setAge( $age )
{
return $this->_age = (int)$age;
}
}

$p = new person();
$p->name = 'bob';
print_r( array( $p ) );

這裡我們可以很清楚的看到 , 當給未定義的'name'賦值時 , 會調用"__set()”

其他的還有 __call(), __isset() , __unset();
這裡最有用和最常用的的是__call() , 當調用一個為存在的方法時被調用; __isset()是在對一個為定義的屬性使用isset()函數時被調用, __unset是在對未定義的數以使用unset時被調用

希望本文所述對大家的PHP程式設計有所協助。


PHP攔截器的實現

就是幾個$_SERVER的變數
$url = 'http://'.$_SERVER['HTTP_HOST'].$_SERVER['REQUEST_URI'];
echo $url;
這兩個就是你想要的東東..
 

php中用了攔截器與屬性公用有什不同

攔截器有攔截器不可替代的功能,攔截器可以集體處理及儲存變數,而公用屬性並不好,你如果常用公用屬性,你的物件導向思維都沒了.老大.
 

http://www.bkjia.com/PHPjc/904926.htmlwww.bkjia.comtruehttp://www.bkjia.com/PHPjc/904926.htmlTechArticlephp類中的各種攔截器用法分析,php類攔截用法 本文執行個體講述了php類中的各種攔截器用法。分享給大家供大家參考。具體用法分析如下: 1、...

  • 聯繫我們

    該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

    如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

    A Free Trial That Lets You Build Big!

    Start building with 50+ products and up to 12 months usage for Elastic Compute Service

    • Sales Support

      1 on 1 presale consultation

    • After-Sales Support

      24/7 Technical Support 6 Free Tickets per Quarter Faster Response

    • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.