php初始化變數
㈠ php中為什麼要初始化變數請高手解答
php是弱類型語言,可以直接用,不過初始化是個好習慣。這樣以後再讀代碼的時候,可以很清楚該變數是干什麼用的。
我一般只有在定義數組的時候初始化。有的函數比較大,可能好多單詞比如data,之前用過了,但是如果忘了,繼續用$data['title']=「ddd」;往$data放數據,就會導致之前data里的數據被覆蓋,也可能之前不需要的數局進入了後面要用的data里。這時初始化一下,data實際就清空了。這樣一般不會有什麼問題
㈡ php 變數怎麼初始化
直接
$a = '';
$b = 0;
$c = array();
就可以了,php在這方面比較省事,靜態變數用define定義
如define('AAA',0);
類對象變數用 var
如 var $aaa = 0;
㈢ php變數初始化。用null。0。'' 那個好
習慣上都是用0的,因為0代表你初始化的這個變數時整形,而空則說明暫時不確定你初始化的這個變數的類型是什麼,哪個好你應該明白了吧
㈣ php為什麼變數要初始化 向高手討教
是這樣的,比如我們程序要使用$tmp來存儲一個循環裡面取到的內容,語句如下:
while(...){
if (...) $tmp=...;
}
if ($tmp==...) {...}
上面的語句,是在循環裡面判斷某個條件,條件滿足就賦值,循環結束後判斷變數的值來執行程序,看起來沒問題,但是實際上有問題。
因為在循環前沒有對$tmp='';這樣初始化,那麼循環中如果一直都沒有滿足條件,其實$tmp的值可能是不確定的。特別是,當欄位全局變數開關打開的時候,$tmp的值可能是調用這個PHP文件時的參數值,例如xxx.php?tmp=xxx這樣的調用就可以改變程序裡面變數的值,非常危險。
㈤ 關於php當中static關鍵字,資料上說只能初始化一次。但是數組變數在定義時賦值會被下一次初始化覆蓋!
你定義了static 就是靜態變數
但是靜態變數的初始化只進行一次,而且是定義靜態變數的時候初始化
static $a = array(1,2,3);
print_r($a);
static $a = array();
這樣實際上是定義了兩次靜態變數,並初始化,實際做會執行其中一個
就是後面這個
上面的代碼實際上會被編譯器編程這樣
<?php
function f1(){
static $a = array();
print_r($a);
print_r($a);
}
function f2(){
static $a = array();
$a[] = 1;
$a[] = 2;
$a[] = 3;
print_r($a);
print_r($a);
}
㈥ PHP定義類內數組,在初始化訪問數組是提示為定義變數
$this->table[$i][0]="null";
㈦ PHP中為什麼要初始化變數
由於不存在聲明語句,所以變數初始化過程應該直接賦值,例如: $str_demo=""; 未初始化變數的默認值
未初始化的變數被使用時,具有其類型的默認值:FALSE,零,空字元串或者空數組。 舉例如下: <?php echo ($unset_bool? "true": "false"); // false $unset_int += 25; // 0 + 25 => 25 echo $unset_string . "abc"; // "" . "abc" => "abc" $unset_array[3] = "def"; // array() + array(3 => "def") => array(3 => "def") ?> 未初始化變數可能帶來的問題
依賴未初始化變數的默認值在某些情況下會有問題,例如: 直接使用未定義變數可能會報錯,比如這樣的程序 <?php if($command!= "kkk") echo "not kkk"?>
可能會出現錯誤提示 <b>Notice:</b> Undefined variable: command in <b>X:\wamp\www\xxx.php</b> on line 1
以上程序的錯誤信息屬於E_NOTICE級別,是否顯示出來與php.ini中的錯誤級別設置有關。
㈧ php為什麼變數要初始化 向高手討教
是這樣的,比如我們程序要使用$tmp來存儲一個循環裡面取到的內容,語句如下:
while(...){
if
(...)
$tmp=...;
}
if
($tmp==...)
{...}
上面的語句,是在循環裡面判斷某個條件,條件滿足就賦值,循環結束後判斷變數的值來執行程序,看起來沒問題,但是實際上有問題。
因為在循環前沒有對$tmp='';這樣初始化,那麼循環中如果一直都沒有滿足條件,其實$tmp的值可能是不確定的。特別是,當欄位全局變數開關打開的時候,$tmp的值可能是調用這個PHP文件時的參數值,例如xxx.php?tmp=xxx這樣的調用就可以改變程序裡面變數的值,非常危險。
㈨ ThinkPHP遇到的類私有變數賦值問題
Home\Common\Map.class.php文件
<?php
namespace Home\Common;
class Map {
static function getName() {
$map = array(
'0' => '張三',
'1' => '李四',
'2' => '王五',
'3' => '趙六'
);
return $map;
}
}
Home\Controller\IndexController.class.php文件
<?php
namespace Home\Controller;
use Think\Controller;
use Home\Common\Map as map;
class IndexController extends Controller {
private $sex = array(0,1);
private $name = map::getName(); // 寫法1
// 測試 靜態函數 類私有變數賦值
public function getName() {
$name = map::getName(); // 寫法2
var_mp($name);
}
}
其中,寫法1出錯,顯示:
寫法2顯示:
如果想私有變數賦值,可以構造函數賦值,即在__construct()里賦值:
$this->name = map::getName(); // 注意千萬別寫成$this->$name
類的變數成員叫做「屬性」,或者叫「欄位」、「特徵」。屬性聲明是由關鍵字 public , protected 或者 private 開頭,然後跟一個普通的變數聲明來組成。 屬性中的變數可以初始化,但是初始化的值必須是常數 ,這里的常數是指 PHP 腳本在編譯階段時就可以得到其值,而不依賴於運行時的信息才能求值。
在類的成員方法裡面,可以用 -> (對象運算符):$this -> property(其中 property 是該屬性名)這種方式來訪問 非靜態屬性 。 靜態屬性 則是用 :: (雙冒號):self::$property 來訪問。
當一個方法在類定義內部被調用時,有一個可用的偽變數 $this。$this 是一個到主叫對象的引用(通常是該方法所從屬的對象,但如果是從第二個對象 靜態 調用時也可能是另一個對象)。
具體請參考:http://php.net/manual/zh/language.oop5.properties.php
㈩ PHP的變數是什麼
PHP中的每個變數都有一個針對它的作用域,它是指可以在其中訪問變數(從而訪問它的值)的一個領域。對於初學者來說,變數的作用域是它們所駐留的頁面。我們為大家收集整理了關於PHP的變數,以方便大家參考。
變數是程序中或以變化的量,用於存儲數字、字元串或函數的結果。
一旦設置了某個變數,我們就可以在腳本中重復地使用它。
PHP 中的所有變數都是以 $ 符號開始的。
在 PHP 中設置變數的正確方法是:
$var_name = value;
PHP 的入門者往往會忘記在變數的前面的 $ 符號。如果那樣做的話,變數將是無效的。
下面我們創建一個存有字元串的變數,和一個存有數值的變數:
$txt = "Hello World!";
$number = 16;
?>
PHP 是一門鬆散類型的'語言(Loosely Typed Language)
在 PHP 中,不需要在使用變數之前先聲明該變數。
在上面的例子中,您看到了,不必向 PHP 聲明該變數的數據類型。
根據變數被設置的方式,PHP 會自動地把變數轉換為正確的數據類型。
在強類型的編程語言中,您必須在使用前聲明變數的類型和名稱。
在PHP中,變數會在使用時被自動聲明。
變數的命名規則
變數名必須以字母或下劃線 "_" 開頭。
變數名只能包含字母數字字元以及下劃線。
變數名不能包含空格。
如果變數名由多個單片語成,那麼應該使用下劃線進行分隔(比如 $my_string),或者以大寫字母開頭(比如 $myString)。