當前位置:首頁 » 編程語言 » php類與對象

php類與對象

發布時間: 2022-01-16 16:56:58

❶ 為什麼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','用戶名','密碼','資料庫名');
}

❷ 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();

❸ 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();

❹ 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();
?>

❺ php 類/對象函數

你要問什麼?

❻ php模塊和類對象的區別

建議看看下面鏈接的網頁,有問題再補充:網頁鏈接

❼ 請問PHP中的面向對象,java面向對象一樣嗎。如果不一樣,有什麼區別(有好的回答的的話回加分的)

沒有哪2種語言的面對對象做法是完全一樣。所以回答是「不一樣」。
由於各自語言的特性,細節區別非常多,不可勝訴。
總體上,php在設計對象模型式參考了java的設計,但改成適應php自身的形式。
php沒有java的自動化class loader,在類的讀取和對象創建上就要注意先後。php的自動讀取要手動設置。
php由於自身是動態類型語言,變數本身的類型動態,就沒有java的重載功能。這也導致類設計上的一些很大區別。
php的動態特性和具有自我反射能力,可以把方法名稱當成「消息」發送,在運行時判斷對象是否能接收消息,java的靜態就不能直接應用這樣的設計。
php6.x之前估計不會類似java的有名字空間或包管理機制。
php的對象可以動態地後添加屬性增減數據,java是禁止這樣做的。
php的方法名稱還不區分大小寫。
php的動態特性也就不需要模板泛型編程的特性。在java中泛型也占很重要的一部分。
等等等等
相同點,都具有final,抽象類,介面,變數可見度等語法。
總之,這些不同都是由語言特性和適用場合決定的

❽ php中類與對象的區別和關系是什麼

舉個例,類就好比人類,類有各種屬性和各種方法,就像人類有姓名,年齡,身高,體重等屬性,也有吃飯,睡覺,走路等行為(方法)。而對象,就是具體的一個人,是從人類這個類里實例化出來的一個對象,這個人具有人類的各種屬性和方法。如果把上面這對話寫成代碼的話,就是

class 人類{
public $姓名, $年齡, $身高, $體重……
public function 吃飯(){
……
}
public function 睡覺(){
……
}
public function 走路(){
……
}
……
}
$人=new 人類;

$人->姓名='李雷';
$人->年齡=30;
$人->身高=175;
$人->姓名=75;
$人->吃飯();
……
這就是類和對象的區別和關系。

❾ php中如何找到對象所屬的類

PHP內置了相關的函數可以滿足你的要求。詳細解答如下:

echoget_class($obj);//


不過實戰中很少使用這種方式,因為獲得類名並沒有實際意義,只是在特殊情況下無法跟蹤代碼時臨時調試一下而已。


實戰用常用的方式是

if($objinstanceofCat)//$obj是Cat類的實例嗎?
if($objinstanceofAnimal)//$obj是Animal類的實例嗎?


希望以上回答能幫助到你,有用望採納,有疑問請追問。

❿ 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);
}
}

不過這東西需要用對象這么麻煩嗎...如果是老師教的...這水平...完全沒有實用價值

熱點內容
python逗號split 發布:2024-12-25 01:24:06 瀏覽:155
sqlwithas效率 發布:2024-12-25 01:21:25 瀏覽:484
pcielinux 發布:2024-12-25 01:12:02 瀏覽:644
展示迷宮演算法 發布:2024-12-25 00:58:25 瀏覽:438
手機酷我音樂上傳歌詞 發布:2024-12-25 00:58:14 瀏覽:797
路由器哪裡改密碼 發布:2024-12-25 00:53:18 瀏覽:659
編譯原理數組的翻譯三地址代碼 發布:2024-12-25 00:53:18 瀏覽:892
全新哈弗h6哪個車型配置夠用 發布:2024-12-25 00:51:35 瀏覽:888
安卓系統部落沖突如何用微信登錄 發布:2024-12-25 00:50:08 瀏覽:364
oracle啟動資料庫服務 發布:2024-12-25 00:50:03 瀏覽:66