php變數存在
Ⅰ php中存在變數的字元串問題
首先,除非你的字元串非常復雜,否則那個快慢的差別是感覺不到的。要以你喜歡看、你覺得好看的方式來寫。
其次:
1.$a = "{$b}cdef";和$a = $b . 'cdef';
後者快
2.echo "{$b}cdef";和echo $b, 'cdef';
後者快
Ⅱ PHP:靜態變數只存在於函數作用域內
static 是讓變數 不在函數結束以後 跟著一起結束
你要是想在函數外用 就用global關鍵字
Ⅲ php變數包含變數
在PHP中,變數是不用預先聲明的。
比如你要設置一個變數名為 myfirst 的變數,不需要聲明,可以直接使用 $myfirst 這個變數。
如果要賦值為 100 ,可以直接書寫語句 : $myfirst=100;
另外,PHP中,數據類型也是不要求定義的。
Ⅳ php 刷新頁面 全局變數還存在嗎
首先你要搞清楚,什麼是全局變數?什麼是局部變數?
局部變數:
局部變數只是僅僅在函數和類中有效的變數(除非是全局化後的變數,類沒有全局化)
全局變數:
在整個文檔中(這一個PHP文件中)的普通變數,就是全局變數。但是全局變數和局部變數是分開的。也就是全局變數無法影響到函數和類中(除非global,全局化。類沒有全局概念。)
全局變數和局部變數的共同是程序執行完成後自動銷毀。
所以不存在。
----------
還有第三種變數,叫做「超全局變數」
意思在多個文檔(php文件)中互相傳遞的
比如:$_POST $_GET $_COOKIES $_SESSION
都是超全局變數
他們在特定情況下刷新不會消失(比如COOKIES ,生成以後,只要不超過有效時間或者你清理了COOKIE以外,變數不會消失。)
Ⅳ php擴展在全局變數中不存在但是列印phpinfo卻存在
說明:我本地裝的php集成環境MAMP PRO
最近遇到一個比較奇怪的問題,在本地搭建了PHP運行環境,並且安裝了相應的PHP擴展 並且在測試頁面中通過列印phpinfo能看到所安裝的擴展是正常的,但是php -m | grep swoole 沒有顯示swoole 已經配好了php環境變數
裝好了php,php一些常用的擴展後就開始配置php系統環境變數,因為我用的mac book pro 所以配置命令如下
查看環境變數是否OK
以為一切OK的我想試試swoole的性能是否真有官網說的那麼厲害於是就准備了一段測試腳本 https://wiki.swoole.com/wiki/page/326.html
測試腳本
終端執行
然後奇怪的是swoole的http服務並沒有起來 ????
然後查看php錯誤日誌 驚奇!
確定瀏覽器列印的phpinfo 是有swoole擴展的,而且終端的php跟界面的php是同一個版本的php 百思不解 然後我在終端
結果很意外 終端裡面找不到swoole 擴展!!! 可是瀏覽器里列印有的啊 而且是同一個PHP版本??奇怪了
然後在終端執行 php -i 這個是在終端列印phpinfo
然後對比這個
終端列印phpinfo
瀏覽器列印phpinfo
是同一個PHP沒錯了 。。。
然後再對比php.ini引用路徑
終端的:
瀏覽器的
終於找到原因了 兩個地方引用的php.ini不一樣 於是在終端引用的php.ini同樣加上extension = swoole.so即可
Ⅵ PHP中如何檢測一個值為null的變數是否存在
PHP 中判斷變數是否為 null 可以使用 is_null() 或者 ($var === null) 來判斷,至於變數是否存在,由於 null 值會干擾到 isset() 所以只能用捕捉異常來處理。代碼如下:
try{
if($var===null){
return'變數的值為null';
}else{
return'變數的值不為null';
}
}catch(Exception$exception){
return'變數不存在';
}
Ⅶ php變數定義方法
PHP語法吸收了C語言、Java和Perl的特點,利於學習,使用廣泛,主要適用於Web開發領域。以下是為大家分享的php變數定義方法,供大家參考借鑒,歡迎瀏覽!
1.定義常量define("CONSTANT", "Hello world.");
常量只能包含標量數據(boolean,integer,float 和 string)。
調用常量時,只需要簡單的用名稱取得常量的值,而不能加「$」符號,如:echo CONSTANT;
注: 常量和(全局)變數在不同的名字空間中。這意味著例如 TRUE 和 $TRUE 是不同的。
2.普通變數$a = "hello";
3.可變變數(使用兩個美元符號($))
$$a = "world";
兩個變數都被定義了:
$a 的內容是「hello」並且 $hello 的內容是「world」。
因此,可以表述為:
echo "$a ${$a}";或者 echo "$a $hello";它們都會輸出:hello world
要將可變變數用於數組,必須解決一個模稜兩可的問題。這就是當寫下 $$a[1] 時,解析器需要知道是想要 $a[1] 作為一個變數呢,還是想要 $$a 作為一個變數並取出該變數中索引為 [1] 的值。解決此問題的語法是,對第一種情況用 ${$a[1]},對第二種情況用 ${$a}[1]。
4.靜態變數
在函數內部static $a = 0;
注意:聲明中用表達式的結果對其賦值會導致解析錯誤如static $a =3+3;(error)
靜態變數僅在局部函數域中存在(函數內部),函數執行完之後,變數值不會丟失,可用於遞歸調用
5.全局變數
在函數體內定義的global變數,函數體外可以使用,在函數體外定義的global變數不能在函數體內使用,在全局范圍內訪問變數可以用特殊的 PHP 自定義 $GLOBALS 數組:
如:$GLOBALS["b"] = $GLOBALS["a"] + $GLOBALS["b"];
在一個函數域內用 global 語句導入的一個真正的全局變數實際上是建立了一個到全局變數的引用
global $obj;
註:對於變數的 static 和 global 定義是以 應用 的方式實現的
6.給變數賦值:傳地址賦值(簡單引用):
$bar = &$foo; //加&符號到將要賦值的變數前
改動新的變數將影響到原始變數,這種賦值操作更加快速
注意:只有命名變數才可以傳地址賦值
注意:如果
$bar = &$a;
$bar = &$foo;
改變$bar的值只能改變變數foo的值,而不改變a的值(引用改變了)
7.PHP 超全局變數$GLOBALS : 包含一個引用指向每個當前腳本的全局范圍內有效的變數。該數組的鍵標為全局變數的 名稱。從 PHP 3 開始存在 $GLOBALS 數組。
$_SERVER : 變數由 Web 伺服器設定或者直接與當前腳本的執行環境相關聯。類似於舊數組 $HTTP_SERVER_VARS 數組(依然有效,但反對使用)。
$_GET : 經由 HTTP GET 方法提交至腳本的變數。
$_POST : 經由 HTTP POST 方法提交至腳本的變數。
$_COOKIE : 經由 HTTP Cookies 方法提交至腳本的變數。
$_FILES : 經由 HTTP POST 文件上傳而提交至腳本的變數。
文件上傳表單中要有 enctype="multipart/form-data"
$_ENV : 執行環境提交至腳本的變數。
$_REQUEST :經由 GET,POST 和 COOKIE 機制提交至腳本的.變數,因此該數組並不值得信任。所有包含在該數組中的變數的存在與否以及變數的順序均按照 php.ini 中的 variables_order 配置指示來定義。該數組沒有直接模擬 PHP 4.1.0 的早期版本。參見 import_request_variables()。
注意: 自 PHP 4.3.0 起,$_FILES 中的文件信息不再存在於 $_REQUEST 中。
$_SESSION :當前注冊給腳本會話的變數。
如何禁用phpinfo():
php.ini中
disable_functions = phpinfo()
重啟web伺服器。
php中的常量
常量只能用define(常量名,常量值);
常量只能包含標量數據(boolean,integer,float 和 string)。
可以簡單的通過指定其名字來取得常量的值,不要在常量前面加上 $ 符號。如果常量名是動態的,也可以用函數
constant() 來讀取常量的值。用 get_defined_constants() 可以獲得所有已定義的常量列表。
注: 常量和(全局)變數在不同的名字空間中。這意味著例如 TRUE 和 $TRUE 是不同的。
如果使用了一個未定義的常量,PHP 假定想要的是該常量本身的名字,如同用字元串調用它一樣(CONSTANT 對應 "CONSTANT")。此時將發出一個 E_NOTICE 級的錯誤。參見手冊中為什麼 $w3sky[bar] 是錯誤的(除非事先用 define() 將 bar 定義為一個常量)。如果只想檢查是否定義了某常量,用 defined() 函數。
常量和變數不同:
* 常量前面沒有美元符號($);
* 常量只能用 define() 函數定義,而不能通過賦值語句;
* 常量可以不用理會變數范圍的規則而在任何地方定義和訪問;
* 常量一旦定義就不能被重新定義或者取消定義;
* 常量的值只能是標量。
定義常量
<?PHP
define("CONSTANT", "Hello world.");
echo CONSTANT; // outputs "Hello world."
echo Constant; // outputs "Constant" and issues a notice.
?>
Ⅷ php 如何讓一個變數長期存在
1、PHP程序結束了,變數當然就會銷毀。如果你要變數活下去,那就得給他一個地方活著。
資料庫是一個地方,memcache/redis之類的內存是一個地方,硬碟是一個地方,第三方存儲API也是一個地方。
2、因為PHP木有daemon,PHP變數的生命周期是頁面級別的,頁面結束了,變數也就結束了,保存在redis或者memcached。
