PHP 変数またはオブジェクトの破棄は、明示的な破棄と暗黙的な破棄に分けられます。
1. オブジェクトが参照されていない場合の明示的な破棄は、
2. 暗黙的な破棄、PHP はスクリプト言語であり、コードの最後の行が実行されると、要求されたすべてのメモリがすべて必要になります。解放される;
#上記の 2 つの破棄方法から、3 つの破棄方法を要約できます。つまり、
1、unset()
2. $varname=null
3. デストラクター __destruct()
例:
class Human { public $name = '张三'; public $gender = null; public function __destruct() { echo '死了!<br />'; } } $a = new Human(); $b = $c = $d = $a; unset($a); $d=null; echo '<hr />'; var_dump($a); echo '<hr />'; var_dump($b); echo '<hr />'; var_dump($c); echo '<hr />'; var_dump($d); 结果如下: Notice: Undefined variable: a in /Library/WebServer/Documents/test.php on line 42 NULL object(Human)#1 (2) { ["name"]=> string(6) "张三" ["gender"]=> NULL } object(Human)#1 (2) { ["name"]=> string(6) "张三" ["gender"]=> NULL } NULL 死了!
最初のすべて、PHP では、変数名がメモリ スタックに格納されることを知る必要があります。変数名は、ヒープ内の特定のメモリのアドレスを指します。変数名を通じてヒープ内のメモリを見つけることができます。したがって、次のように結論付けることができます。結論:
<?php $a = 1; $b = &$a; unset($a); var_dump($a); var_dump($b);
結果は次のようになります:
Notice: Undefined variable: a in E:\amp\apache\htdocs\index.php on line 5 NULL int(1)
つまり、unset() は実際には変数内のメモリ値を破壊するのではなく、変数間の関係を切断するだけです。変数とメモリ。変数名も削除されますが、参照されている限りメモリは解放されません。PHP では、オブジェクトの値はデフォルトで参照によって渡されます。これは、人間のクラス、$a は unset( ) ですが、$b =$c = $d にはまだ値があります。
2. $varname=null、変数名はまだ存在しますが、メモリ値は削除されます。では、参照渡しの場合はどうなるでしょうか?例:
<?php $a = 1; $b = &$a; $a=null; var_dump($a); var_dump($b);
输出的结果是: NULL NULL
つまり、$varname=null の場合、変数名とメモリ ポインタはまだ存在しますが、メモリ内の値は完全に削除されます。
3. 上記の例からわかるように、PHP がコードの最後の部分の実行を終了すると、デストラクター __destruct() が開始されますが、この理解は十分正確ではありません。 ##<?php
class Human{
public $name = '开始';
public function __destruct(){
echo '结束';
}}
$a = new Human;
echo $a->name;
unset($a); //销毁函数
$a = new Human;
echo '***********************';
输出的结果是:
开始结束***************************结束
class Human{
public $name = '开始';
public function __destruct(){
echo '结束';
}}
$a = new Human;
$b = $a;
echo $a->name;
unset($a); //销毁函数
$a = new Human;
echo '***************************';
结果是:
开始***************************结束结束
上記の結果は、コードは最後の行の実行時に開始されず、オブジェクトが破棄されるときに自動的に実行されることを示しています。 human() 関数にも unset() があるのに最後にデストラクタ __destruct() が実行されるのは、参照渡し時にオブジェクトのメモリがキャンセルされず、オブジェクトが完全に破棄されないためです。
推奨チュートリアル:
PHP ビデオ チュートリアル以上がPHPで変数を削除する方法の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

php把负数转为正整数的方法:1、使用abs()函数将负数转为正数,使用intval()函数对正数取整,转为正整数,语法“intval(abs($number))”;2、利用“~”位运算符将负数取反加一,语法“~$number + 1”。

实现方法:1、使用“sleep(延迟秒数)”语句,可延迟执行函数若干秒;2、使用“time_nanosleep(延迟秒数,延迟纳秒数)”语句,可延迟执行函数若干秒和纳秒;3、使用“time_sleep_until(time()+7)”语句。

php字符串有下标。在PHP中,下标不仅可以应用于数组和对象,还可应用于字符串,利用字符串的下标和中括号“[]”可以访问指定索引位置的字符,并对该字符进行读写,语法“字符串名[下标值]”;字符串的下标值(索引值)只能是整数类型,起始值为0。

php除以100保留两位小数的方法:1、利用“/”运算符进行除法运算,语法“数值 / 100”;2、使用“number_format(除法结果, 2)”或“sprintf("%.2f",除法结果)”语句进行四舍五入的处理值,并保留两位小数。

判断方法:1、使用“strtotime("年-月-日")”语句将给定的年月日转换为时间戳格式;2、用“date("z",时间戳)+1”语句计算指定时间戳是一年的第几天。date()返回的天数是从0开始计算的,因此真实天数需要在此基础上加1。

在php中,可以使用substr()函数来读取字符串后几个字符,只需要将该函数的第二个参数设置为负值,第三个参数省略即可;语法为“substr(字符串,-n)”,表示读取从字符串结尾处向前数第n个字符开始,直到字符串结尾的全部字符。

方法:1、用“str_replace(" ","其他字符",$str)”语句,可将nbsp符替换为其他字符;2、用“preg_replace("/(\s|\ \;||\xc2\xa0)/","其他字符",$str)”语句。

查找方法:1、用strpos(),语法“strpos("字符串值","查找子串")+1”;2、用stripos(),语法“strpos("字符串值","查找子串")+1”。因为字符串是从0开始计数的,因此两个函数获取的位置需要进行加1处理。


ホットAIツール

Undresser.AI Undress
リアルなヌード写真を作成する AI 搭載アプリ

AI Clothes Remover
写真から衣服を削除するオンライン AI ツール。

Undress AI Tool
脱衣画像を無料で

Clothoff.io
AI衣類リムーバー

AI Hentai Generator
AIヘンタイを無料で生成します。

人気の記事

ホットツール

SecLists
SecLists は、セキュリティ テスターの究極の相棒です。これは、セキュリティ評価中に頻繁に使用されるさまざまな種類のリストを 1 か所にまとめたものです。 SecLists は、セキュリティ テスターが必要とする可能性のあるすべてのリストを便利に提供することで、セキュリティ テストをより効率的かつ生産的にするのに役立ちます。リストの種類には、ユーザー名、パスワード、URL、ファジング ペイロード、機密データ パターン、Web シェルなどが含まれます。テスターはこのリポジトリを新しいテスト マシンにプルするだけで、必要なあらゆる種類のリストにアクセスできるようになります。

EditPlus 中国語クラック版
サイズが小さく、構文の強調表示、コード プロンプト機能はサポートされていません

SAP NetWeaver Server Adapter for Eclipse
Eclipse を SAP NetWeaver アプリケーション サーバーと統合します。

AtomエディタMac版ダウンロード
最も人気のあるオープンソースエディター

PhpStorm Mac バージョン
最新(2018.2.1)のプロフェッショナル向けPHP統合開発ツール

ホットトピック



