1. php中如何找到對象所屬的類
PHP內置了相關的函數可以滿足你的要求。詳細解答如下:
echoget_class($obj);//
不過實戰中很少使用這種方式,因為獲得類名並沒有實際意義,只是在特殊情況下無法跟蹤代碼時臨時調試一下而已。
實戰用常用的方式是
if($objinstanceofCat)//$obj是Cat類的實例嗎?
if($objinstanceofAnimal)//$obj是Animal類的實例嗎?
希望以上回答能幫助到你,有用望採納,有疑問請追問。
2. php模塊和類對象的區別
建議看看下面鏈接的網頁,有問題再補充:網頁鏈接
3. php中的對象分為哪兩種
得到一個對象的類型,使用gettype()函數:
<?php
echo gettype(1); // 輸出integer
echo gettype(array()); // 輸出array
得到一個對象是哪個類的實例,使用get_class()函數:
<?php
$o = new stdClass();
echo get_class(); // 輸出stdClass
得到一個類或對象的方法和屬性,要使用反射:
<?php
class MyClass {
public $var;
public function foo() {}
}
$ref = new ReflectionClass('MyClass');
$ref->getProperties(); // 會返回一組對象,用法參考PHP手冊
$ref->getMethods(); // 會返回一組對象,用法參考PHP手冊
$obj = new MyClass();
$ref = new ReflectionObject($obj);
$ref->getProperties();
$ref->getMethods();
4. php 類/對象函數
你要問什麼?
5. php 中如何得到一個對象的類型
得到一個對象的類型,使用gettype()函數:
<?php
echogettype(1);//輸出integer
echogettype(array());//輸出array
得到一個對象是哪個類的實例,使用get_class()函數:
<?php
$o=newstdClass();
echoget_class();//輸出stdClass
得到一個類或對象的方法和屬性,要使用反射:
<?php
classMyClass{
public$var;
publicfunctionfoo(){}
}
$ref=newReflectionClass('MyClass');
$ref->getProperties();//會返回一組對象,用法參考PHP手冊
$ref->getMethods();//會返回一組對象,用法參考PHP手冊
$obj=newMyClass();
$ref=newReflectionObject($obj);
$ref->getProperties();
$ref->getMethods();
6. php中類與對象的區別和關系是什麼
舉個例,類就好比人類,類有各種屬性和各種方法,就像人類有姓名,年齡,身高,體重等屬性,也有吃飯,睡覺,走路等行為(方法)。而對象,就是具體的一個人,是從人類這個類里實例化出來的一個對象,這個人具有人類的各種屬性和方法。如果把上面這對話寫成代碼的話,就是
class 人類{
public $姓名, $年齡, $身高, $體重……
public function 吃飯(){
……
}
public function 睡覺(){
……
}
public function 走路(){
……
}
……
}
$人=new 人類;
$人->姓名='李雷';
$人->年齡=30;
$人->身高=175;
$人->姓名=75;
$人->吃飯();
……
這就是類和對象的區別和關系。
7. php類和對象問題
$this 的含義是表示 實例化後的 具體對象!
我們一般是先聲明一個類,然後用這個類去實例化對象!
但是,當我們在聲明這個類的時候,想在類本身內部使用本類的屬性或者方法。應該怎麼表示呢?
例如:
我聲明一個User類!它只含有一個屬性 $name;
class User
{
public $_name;
}
現在,我給User類加個方法。就用getName()方法,輸出$name屬性的值吧! 復制PHP內容到剪貼板
PHP代碼:
class User
{
public $name;
function getName()
{
echo $this->name;
}
}
//如何使用呢?
$user1 = new User();
$user1->name = '張三';
$user1->getName(); //這里就會輸出張三!
$user2 = new User();
$user2->name = '李四';
$user2->getName(); //這里會輸出李四!
怎麼理解呢?
我上面創建了兩個User對象。分別是 $user1 和 $user2 。
當我調用 $user1->getName()的時候。 上面User類中的代碼 echo $this->name ; 就是相當於是 echo $user1->name;
----------------------------------------->>>補充一下>>>
有static修飾的變數和函數不能出現$this
你看到的函數一定沒有static
建議你系統的學習一下PHP,這樣瞎猜是很浪費時間的
static $a1和self::$a1或者$a::$a1是一起使用的。
var $a1和$this->a1是一起使用的
class Abc{
static $a1;
}
class Abc{
var $a1;
}
兩個$a1是不同的。
第一個用self::$a1或者$a::$a1引用,
第二個用$this->$a1或者$a->a1引用
首先static的函數里不能出現$this,只能是self
class Abc{
public static $a1 = "im a1!<br/>";
public static function go()
{
echo(self::$a1);
}
}
Abc::go();
?>
8. PHP運用類和對象實現斐波那契數列
<?php
class demo {
private $_current = 0;
private $_next = 1;
protected function _getNext() {
$value = $this->_current + $this->_next;
$this->_current = $this->_next;
$this->_next = $value;
return $value;
}
public function getString($max) {
if($max < 1) return ''
$str = ''
while($next = $this->_getNext()) {
if ($next <= $max) {
$str .= ', ' . $next;
} else {
break;
}
}
return substr($str, 1);
}
}
不過這東西需要用對象這么麻煩嗎...如果是老師教的...這水平...完全沒有實用價值
9. 請問PHP中的面向對象,java面向對象一樣嗎。如果不一樣,有什麼區別(有好的回答的的話回加分的)
沒有哪2種語言的面對對象做法是完全一樣。所以回答是「不一樣」。
由於各自語言的特性,細節區別非常多,不可勝訴。
總體上,php在設計對象模型式參考了java的設計,但改成適應php自身的形式。
php沒有java的自動化class loader,在類的讀取和對象創建上就要注意先後。php的自動讀取要手動設置。
php由於自身是動態類型語言,變數本身的類型動態,就沒有java的重載功能。這也導致類設計上的一些很大區別。
php的動態特性和具有自我反射能力,可以把方法名稱當成「消息」發送,在運行時判斷對象是否能接收消息,java的靜態就不能直接應用這樣的設計。
php6.x之前估計不會類似java的有名字空間或包管理機制。
php的對象可以動態地後添加屬性增減數據,java是禁止這樣做的。
php的方法名稱還不區分大小寫。
php的動態特性也就不需要模板泛型編程的特性。在java中泛型也占很重要的一部分。
等等等等
相同點,都具有final,抽象類,介面,變數可見度等語法。
總之,這些不同都是由語言特性和適用場合決定的
10. 為什麼PHP類中聲明一個對象屬性會報錯
- syntax error, unfinished class declaration 語法錯誤,未完成的類定義
- 1 changed line
- syntax error, unexpected 'new' 語法錯誤,未預期的 new
原因:
1. 語法錯誤,未完成的類定義
你需要提供 mysqli() 里寫上初始化(實例化)類所需要的參數,比如:
$_mysqli = new mysqli('localhost','用戶名','密碼','資料庫名');
2. syntax error, unexpected 'new'
將上面的變數定義與初始化代碼分開來寫:
Class ProviderDAO {
private static $_mysqli;
$_mysqli = new mysqli('localhost','用戶名','密碼','資料庫名');
}