php實例化
㈠ php實例化
有幾個書寫錯誤,現在已經訂正!
$arr = $this->GetRecord($SQL);//這不是調用父類中的方法嗎?
我跟你說過,什麼叫繼承,就是說子類擁有父類的所有成員(在可繼承的情況下),你可以通過作用域連接符使用父類成員,也可以通過$this關鍵字(靜態的,私有的不行!!!!!)!!!!!!!
怎樣來認識面向對象編程:
給你舉個例子:
class student{
public $name;
public statics $age;
public function set_name($name){
$this->name=$name;//這是正確的
self::$name=$name;//正確
$name=$name;//這句錯誤
}
public function set_age($age){
$this->age=$age;//錯誤
self::$age=$age;//正確
}
}
//為什麼會這樣呢,也就是說,如果你要在類裡面另外的成員,那麼你就要通過
//$this關鍵字,或者作用域解析符,但是如果是靜態成員,不能使用$this訪問,來引用它,不能像普通的代碼一樣直接使用.
$this->name你可以這樣理解,學生的名字,也就是說$this代表的就是類名
class boy_student extents students{
//這個類擴展自students,也就是說有students類的所有成員,
//當然你也可以添加students沒有的成員
$aadress;
:
:
:
//如果你要應用父類的方法:可以這樣:
parent::set_name(....)
//當然這里涉及到的東西足足可以寫成一本書,不是說有的父類成員都能子類訪問,有些甚至連繼承都不行,這里涉及到可見性的問題!
}
*********************************
$this->xxx 實例化來調用的嗎?
*******************************
這不是實例化,什麼叫實例化,就是說,剛才我們定義的是一個抽象的東西,就像學生,他是一個類別;
$zhangshan = new students();
這才是實利化,明白嗎!
㈡ php 類中獲取實例化後的自身
classaaaa{
privatestatic$instance=null;
publicfunction__construct(){
self::$instance=&this;
}
publicstaticfunction&getInstance(){
returnself::$instance
}
}
調用aaaa:getInstance()就是返回版aaaa實例權
㈢ php類實例化
get_navigation(){......} 內,query之前 加一句 global $db;
或者改為
function get_navigation($db){......}
$navigation = get_navigation($db);
㈣ php中實例化對象&是什麼意思
&是「引用」,也就是說$db=& new Creat()的$db不是具體一個對象,而是對象的引用。
一般這樣的情況下,有可以Creat的構造函數是返回某一個全局或某個作用域下的對象。
㈤ php 實例化 問題
屬性其實不是類,而是類的一個實例(屬性的類型是那個類)。
比如說 class D {
public $a = new class A; // 屬性a是類A的實例
}
class A {
public $b = new Class B; //屬性b是類B的實例
}
這樣當實例化D的時候:$obj1 = new D;
這樣可以拿到A類的實例:$obj2 = $obj1->a;
有問題追問吧,請點贊。
㈥ php實例化類
<?php
class B{
function showme(){
return "i am B class function";
}
}
class A extends B{
function myshow(){
return B::showme()."--- this add by A function";
}
}
$test=new A();
echo $test->myshow();
?>
1、繼承關鍵字 :extends
PHP類的繼承,我們可以理解成共享被繼承類的內容。PHP中使用extends單一繼承的方法,請切忌!(非C++多繼承)被繼承的類我們叫做父類(基類)繼承者成為子類(派生類)。
2、PHP繼承的規則
CLASS1------>CLASS2------>CLASS3
依次被繼承,class3擁有class1、class2所以功能和屬性,避免方法和屬性重名。
㈦ php類被實例化以後生成的對象 如何變為 php數組呢
使用對象的引用對象的屬性的方式引用唄。
$obj->pro;//$obj為對象名,pro為其屬性。
echo $page->prev;
㈧ php 實例化對象時的寫法
一樣的,括弧主要是為了傳入參數。
帶有__construct 這個構架函數的,有時候就需要括弧。
例如:
class Dog
{
protected $dogcolor; //這種屬性,無法從外部修改。
public function __construct($color='red')
{
$this -> dogcolor = $color;
}
}
$d = new Dog('blue'); //d狗狗是藍色的。。。
$c = new Dog(); //c狗狗是紅色。。。。
話說都很奇特。。。
㈨ php類的實例化問題
只要是實例化一個類,不論是不是在同一個文件夾下,只要不是在當前腳本聲明的,都是需版要include的. 加入一個對象實權例化一個不存在的類,這時候機會調用類的一個魔術方法__autoload方法,參數是你要實例化的這個類名,如果你將這個autoload聲明成了一個方法,方法裡面定義如何查找你需要的這個類,在哪裡查找,並且找到了就自動引入,那就不需要你時時刻刻都來引入類文件了
㈩ php 函數內實例化 對象
樓主,你面向對象還沒有弄清楚
這個要自己的理解,$this->db=$db,$this-db,不是一個對象,這是一個訪問的方法,在一個class內要訪問所屬的變數,必須要用$this->來訪問,其中的$db,是你自己創建的一個全局的變數
華麗的分割線----------------------------------
我總算看明白了,你這里的$db,其實已經被實例化了,$this->db,是一個內部訪問的變數,這個變數其實就是$db,而$db是一個對象,$this->db,你可以了解是對象,這是相對的,我說的比較哆嗦了。
下面,我再說一下吧,有助於你了解
---------------------------
<?php
class common
{
var $db;創建$db變數,這里的變數只是class common里的變數
var $recordNum;
function Common()
{
global $db; //創建全局變數,請注意,這個$db其實已經是對角了,在這個class外面,$db=new classname(),這你要了解
if(!isset($db)) //檢查db異常
return false;
$this->db=$db; //實例化資料庫,這邊是賦值,其實,你把兩個db弄混了,一個是內部的變數,一個是外部的對象,這里就是將外部的對象賦值對內部的變數。
}
//總的來講,你不過,在你的class里用了其他地方的對象而已
//異常排錯方法
function debug()
{
$this->db->debug(); //報錯拋出
}
}
?>