PHP 在foreach中使用&時的注意事項
$arr = [111, 222, 333];
foreach ( $arr as &$value ) {
var_dump($value);
}
foreach ( $arr as $value ) {
var_dump($value);
}
執行結果:
出現這種情況是因為在第一個foreach中,每次的迴圈都相當於:
$value = &$arr[$i]; // $i 是$arr的索引
第一個foreach完成後,$value並沒有登出掉,到第二個foreach時,每次的迴圈都相當於:
$value = $arr[$i]; // $i 是$arr的索引
但$value在第一個foreach中被定義為了一個引用值$value = &$arr[2]
所以,再次使用$value前需要 unset($value);
相關推薦
JAVA中在main函式中呼叫變數時注意事項
在下面這段程式碼中會報錯 [java] view plain copy print?System.out.println(s1); System.out.println(s1);Cannot make a static reference to the non-static field s1 只要把
阿里雲 Linux(CentOS)中Redis配置注意事項
1,執行的Redis伺服器提示找不到該命令: 執行ln -s /root/redis-2.8.17/src/redis-server / usr / bin / redis-server,為redis-server建立軟連線,其中/root/redis-2.8.17/src/為我redis安裝目
Android Sqlite資料庫升級時注意事項
在app版本升級時,同時升級了Sqlite資料庫的版本號的話,如果需要保留之前的資料,需要在onUpgrade方法中做處理。這裡記錄一下在onUpgrade處理升級的時候的一些注意事項。 先看下常用的SQLiteOpenHelper的方法: public class Database
新手通過SVN向eclipse中匯入專案注意事項
該文章進行的前提是,jdk、eclipse、tomcat、maven已安裝完成 要從svn上獲取專案資料,首先要安裝svn 1)通過help->installsoft->svn->add 填入http://subclipse.tigris.org/update_1.8.x  
豆瓣爬蟲中的一些注意事項
實現時所用的知識點 1.建立程序池(加快爬去)和程序池佇列(實現程序之間的通訊)來完成抓取 2.利用佇列(這裡用list代替)實現去重 去重有兩部分。一部分是在爬去前判斷要怕去的url是否在以爬取的url佇列裡面;另一部分時當不在以爬取的佇列中時,將其放入帶爬取的佇列時,判斷是否在待爬取
Log4Net在VS開發程式中的應用注意事項
本人開發是參考的部落格http://www.cnblogs.com/kissazi2/p/3393595.html 作者寫的很全,很詳細,遇到的問題如下: 示例中LogHelper.cs類中有如下程式碼: public static readonly log4net.ILog lo
最全面的EventBus 3.1的使用教程及官方推薦的結合訂閱者索引processor顯著提升效能和實際專案中的使用注意事項
需求場景 無論是現在的專案還是以前的專案中,都會遇見執行緒之間通訊,元件之間通訊的需求,我們知道這些需求都可以使用EventBus來處理,為了對比體現出EventBus使用的方便簡潔,我們先來回顧下在EventBus出現以前我們是怎麼處理執行緒間通訊和元件間通訊的。 1,執行緒間通訊
JAR包中MANIFEST.MF注意事項
1. Manifest-Version 用來定義manifest檔案的版本,例如:Manifest-Version: 1.0 2. Created-By 宣告該檔案的生成者,一般該屬性是由jar命令列工具生成的,例如:Created-By: Apache An
.NET MVC和.NET WEB api混用時注意事項
1、同時配置了mvc路由和api路由時,mvc路由無法訪問(呼叫所有mvc路由全部404錯誤) 在Global.asax中,需注意路由註冊的順序,將api路由註冊放在最後: 即將 void Application_Start(object sender, EventArgs e)
delphi中寫SQL語句中變數的注意事項
1、procedure TForm1.btn1Click(Sender: TObject); var s: String; begin S := 'select * from TMarketInfo where NO='''+'1'
SQL Server 中資料查詢注意事項
1.查詢語句不用區分大小寫,而且即使每張表的表名或者列名出現大寫字母,在寫查詢語句的時候也不用區分大小寫,查詢結果保持一致,所以查詢語句小寫即可。 2.在寫查詢語句的時候列名不需要帶單引號,數值型的字串不用帶引號,需要帶引號的是字元型和漢字型的字串。 3.如果既要用到group by子句,也要用到orde
vue之watch監聽物件或者一個值時注意事項(深度觀察deep:true慎用!)
vue中想在某個值改變的時候能夠做一些其他事情,可以使用其提供的監聽機制,使用watch。注意,本篇不講技術問題,只是講解如何應用,因為筆者也是一個前端的小白 例:經手專案中就有使用,截圖如下: 下面來分析上面分別是怎樣實現監聽的: 其實除了畫紅線的地方,別的都沒什
關於在在module中使用的注意事項
在module中引入了AAR,而工程中匯入了改module作為依賴,即使工程中沒使用沒直接使用AAR中的東西,只使用了module中使用了AAR的類依然會找報錯。這種情況需要在工程中也匯入AAR包並指定
PHP學習系列 -- include(require)注意事項
一、背景 好的框架、設計會遵循高內聚低耦合的設計原則,解耦模組、元件、類之間的依賴關係,做到程式碼的可複用。 PHP裡的程式碼複用有多種形式,今天我們先以常見的include/require檔案包含為例一起學習一下檔案包含複用的相關知識,希望對大家有所幫助。 二、學習 1. 基礎
.mm檔案中呼叫.m檔案中函式的注意事項
假設你有個函式 int FunA(int a),在一個.m檔案中實現,或者在一個庫檔案中。這裡的函式是單獨的函式,而不是interface的method. 那麼當你從一個.mm檔案中呼叫這個函式的時候,需要注意的一點是: 在一定要將 extern "C" 加在該函式
Android在application中使用SharedPreference注意事項
1.在Android的application中使用sharedPerference儲存本地化資料時,會getSharedPreferences(“login”,MODE_PRIVATE);此時使用是會報錯的。因為你在application沒有上下文。 這時候你肯定在getSharedPref
vector中erase用法注意事項
vector::erase():從指定容器刪除指定位置的元素或某段範圍內的元素 vector::erase()方法有兩種過載形式 如下: iterator erase( iterator _Where); iterator erase( iterator _
Winform控制元件在WPF中使用的注意事項
從Winform轉到WPF的時候,經常需要在WPF裡面採用一些以前用Winform寫過的控制元件。下面介紹在WPF中使用Winform的方法和注意事項。 1、在WPF中使用Winform的控制元件 (1)新增必須的dll。主要有:WindowsFormsIntegration.dll,Sys
安裝windows和ubuntu雙系統時,安裝ubuntu時注意事項
1.允許安裝第三方軟體圖形、硬體以及是否聯網更新(可選也可不選) 2.引導驅動裝置應選全盤即/dev/sda即可------這是Ubuntu的grub2引導;如果將引導驅動裝置放入分好的/boot區,則是由Windows引導。 3.當更新windows或者Ubuntu時,造成開機無法進入即找不到引導
ovirt掛載多儲存環境時注意事項
我的測試環境如下 default資料中心+default叢集+NFS儲存 default叢集有node1和node2 新建FC叢集,並加入node3,然後掛載fc儲存 node1和node2沒有hba卡,並未連線到儲存,隸屬於不同叢集,但還是會報錯,看來儲存在同一資料中心