搬磚筆記 PHP物件機制

2021-09-27 00:14:15 字數 1739 閱讀 2630

關於php物件的複製方式。

才疏學淺,只知道以下幾種!

$a = new a();

$a = $b;

katex parse error: expected 'eof', got '&' at position 5: a = &̲b;

那麼這三種方式指向的記憶體是否為同一塊呢?

<?php

class user

}$a = new user();

$b = $a;

$c = &$a;

$b->name = 'ls';

echo $a->name;

echo '

';echo $b->name;

echo '

';echo $c->name;

輸出結果

lsls

ls?>

得出第乙個結論、這三種方式指向的是同乙個位址!

再看轉殖物件!

<?php

/*轉殖物件*/

class user

}$a = new user();

$d = $a;

$c = &$a;

$b = clone $a;

$d->name = 'ls';

echo $a->name;

echo '

';echo $b->name;

echo '

';echo $c->name;

echo '

';echo $d->name;

輸出結果

lszs

lsls

得出第二個結論,clone是單獨指向一塊空間的

綜上

在php5的類物件操作中,a=a=

a=b和katex parse error: expected 'eof', got '&' at position 3: a=&̲b這種賦值方式,指向的是同乙個物件,同一塊記憶體空間。

$a=clone $b這種賦值方式,則是指向另乙個新的物件,另乙個塊新的記憶體空間。

php 5新增的關鍵字final

不能修飾成員屬性

父類中的方法被 final 修飾後,則不能在子類中覆蓋

<?php

class baseclass

final public function moretesting()

}class childclass extends baseclass

}// results in fatal error: cannot override final method baseclass::moretesting()

?>

乙個類被 final 修飾後,則不能被繼承

<?php

final class baseclass

// 這裡無論你是否將方法宣告為final,都沒有關係

final public function moretesting()

}class childclass extends baseclass

// 產生 fatal error: class childclass may not inherit from final class (baseclass)

?>

搬磚筆記 常用PHP函式

對陣列按照鍵名排序,保留鍵名到資料的關聯。本函式主要用於關聯陣列。bool ksort array array int sort flags sort regular ksort fruits foreach fruits as key val 輸出結果 a orange b banana d le...

搬磚筆記 CRLF注入

crlf 指的是回車符 cr,ascii 13,r,0d 和換行符 lf,ascii 10,n,0a windows 使用crlf表示行的結束 linux unix 使用lf表示行的結束 macos 早期使用cr表示,現在好像也用lf表示行的結束 在http報文結構中,狀態行和首部中的每行都是以cr...

搬磚筆記 初識CI框架

2019年8月2日 天氣晴 本文將淺顯的介紹ci框架的接收 跳轉 載入 詳情請參考ci手冊輸入類 this input post name 括號中的name為欲接受的post中的值,若資料不存在方法將返回false this input post name boolean 第二個引數是可選的,如果想...