php變量初始化,變量如何定義php

本文目錄一覽:

關於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 變量怎麼初始化

直接

$a = ”;

$b = 0;

$c = array();

就可以了,php在這方面比較省事,靜態變量用define定義

如define(‘AAA’,0);

類對象變量用 var

如 var $aaa = 0;

PHP類中給成員屬性初始化值為什麼報錯?

$var=$myvar 屬性的值不能是變量!!!這是最基礎的知識。

注意:成員屬性不可以是帶運算符的表達式、變量、方法或函數的調用。 如:

public $var3 = 1+2;

public $var4 = self::myStaticMethod();

public $var5 = $myVar;

正確定義方式:

public $var6 = 100; //普通數值(4個標量:整數、浮點數、布爾、字串)

public $var6 = myConstant; //常量

public $var7 = self::classConstant; //靜態屬性

public $var8 = array(true, false); //數組

php中下面$txt怎麼初始化

默認情況下 PHP.ini內 error_reporting設置為:

error_reporting = E_ALL

這樣如果有Notice也會顯示出來,你可以

修改為

error_reporting = E_ALL ~E_NOTICE

來解決這個問題,但是不推薦,因為PHP開發建議有良好的習慣。

一般在我們要使用變量前,最好都賦一下值,也就是如 $txt=”;$i=0;之類的操作。

如果要判斷數組是否存在這個鍵值也最好用 isset($ary[‘key’]) 進行判斷一下,這樣就能夠根除這個錯誤提示,也是PHP的嚴謹開發者。

php中不同文件中定義的變量的用法

請看PHP手冊18章,裡面的內容你看了就明白。

第 18 章 類與對象(PHP 4)

目錄

繼承

構造函數

範圍解析操作符(::)

parent

序列化對象 - 會話中的對象

魔術函數 __sleep 和 __wakeup

構造函數中的引用

對象的比較

類是變量與作用於這些變量的函數的集合。使用下面的語法定義一個類: 

?php

class Cart {

    var $items;  // 購物車中的物品

    // 將 $num 個 $artnr 物品加入購物車

    function add_item($artnr, $num) {

        $this-items[$artnr] += $num;

    }

    // 將 $num 個 $artnr 物品從購物車中取出

    function remove_item($artnr, $num) {

        if ($this-items[$artnr]  $num) {

            $this-items[$artnr] -= $num;

            return true;

        } elseif ($this-items[$artnr] == $num) {

            unset($this-items[$artnr]);

            return true;

        } else {

            return false;

        }

    }

}

上面的例子定義了一個 Cart 類,這個類由購物車中的商品構成的數組和兩個用於從購物車中添加和刪除商品的函數組成。 

警告

不能將一個類的定義分割到多個文件中。也不能將一個類的定義分割到多個 PHP 塊中,除非該分割是在一個方法聲明內部。以下用法將不起作用: 

?php

class test {

?

?php

    function test() {

        print ‘OK’;

    }

}

但是以下用法是可以的: 

?php

class test {

    function test() {

        ?

        ?php

        print ‘OK’;

    }

}

以下警告僅用於 PHP 4。 

小心

名稱 stdClass 已經被 Zend 使用並保留。不能在 PHP 代碼中定義名為 stdClass 的類。 

小心

函數名 __sleep 和 __wakeup 在 PHP 類中是魔術函數。除非想要與之聯繫的魔術功能,否則在任何類中都不能以此命名函數。 

小心

PHP 將所有以 __ 開頭的函數名保留為魔術函數。除非想要使用一些見於文檔中的魔術功能,否則建議不要在 PHP 中將函數名以 __ 開頭。 

在 PHP 4 中,var 變量的值只能初始化為常量。用非常量值初始化變量,需要一個初始化函數,該函數在對象被創建時自動被調用。這樣一個函數被稱之為構造函數(見下面)。 

?php

/* PHP 4 中不能這樣用 */

class Cart {

    var $todays_date = date(“Y-m-d”);

    var $name = $firstname;

    var $owner = ‘Fred ‘ . ‘Jones’;

    /* 不過包含有常量的數組可以 */

    var $items = array(“VCR”, “TV”);

}

/* 應該這樣進行 */

class Cart {

    var $todays_date;

    var $name;

    var $owner;

    var $items = array(“VCR”, “TV”);

    function Cart() {

        $this-todays_date = date(“Y-m-d”);

        $this-name = $GLOBALS[‘firstname’];

        /* etc. . . */

    }

}

類也是一種類型,就是說,它們是實際變量的藍圖。必須用 new 運算符來創建相應類型的變量。 

?php

$cart = new Cart;

$cart-add_item(“10”, 1);

$another_cart = new Cart;

$another_cart-add_item(“0815”, 3);

上述代碼創建了兩個 Cart 類的對象 $cart 和 $another_cart,對象 $cart 的方法 add_item() 被調用時,添加了 1 件 10 號商品。對於對象 $another_cart,3 件 0815 號商品被添加到購物車中。 

$cart 和 $another_cart 都有方法 add_item(),remove_item() 和一個 items 變量。它們都是明顯的函數和變量。可以把它們當作文件系統中的某些類似目錄的東西來考慮。在文件系統中,可以擁有兩個不同的 README.TXT 文件,只要不在相同的目錄中。正如從為了根目錄訪問每個文件需要輸入該文件的完整的路徑名一樣,必須指定需要調用的函數的完整名稱:在 PHP 術語中,根目錄將是全局名字空間,路徑名符號將是 -。因而,名稱 $cart-items 和 $another_cart-items 命名了兩個不同的變量。注意變量名為 $cart-items,不是 $cart-$items,那是因為在 PHP 中一個變量名只有一個單獨的美元符號。 

?php

// 正確,只有一個 $

$cart-items = array(“10” = 1);

// 不正確,因為 $cart-$items 變成了 $cart-“”

$cart-$items = array(“10” = 1);

// 正確,但可能不是想要的結果:

// $cart-$myvar 變成了 $cart-items

$myvar = ‘items’;

$cart-$myvar = array(“10” = 1);

在定義類的時候,無法得知將使什麼名字的對象來訪問:在編寫 Cart 類時,並不知道之後對象的名稱將會命名為 $cart 或者 $another_cart。因而你不能在類中使用 $cart-items。然而為了類定義的內部訪問自身的函數和變量,可以使用偽變量 $this 來達到這個目的。$this 變量可以理解為“我自己的”或者“當前對象”。因而 ‘$this-items[$artnr] += $num’ 可以理解為“我自己的物品數組的 $artnr 計數器加 $num”或者“在當前對象的物品數組的 $artnr 計數器加 $num”。 

注意: 偽變量 $this 通常未定義,如果其所在的方法是被靜態調用的話。但這不是個嚴格規定:如果一個方法被從另一個對象內靜態調用的話,則 $this 會被定義。此時 $this 的值是那個發出調用的對象。用下例演示: 

?php

class A

{

    function foo()

    {

        if (isset($this)) {

            echo ‘$this is defined (‘;

            echo get_class($this);

            echo “)\n”;

        } else {

            echo “\$this is not defined.\n”;

        }

    }

}

class B

{

    function bar()

    {

        A::foo();

    }

}

$a = new A();

$a-foo();

A::foo();

$b = new B();

$b-bar();

B::bar();

上例將輸出:

$this is defined (a)

$this is not defined.

$this is defined (b)

$this is not defined.

     

注意: 有一些不錯的函數用來處理類和對象。應該關注一下類/對象函數。 

原創文章,作者:小藍,如若轉載,請註明出處:https://www.506064.com/zh-hant/n/195310.html

(0)
打賞 微信掃一掃 微信掃一掃 支付寶掃一掃 支付寶掃一掃
小藍的頭像小藍
上一篇 2024-12-02 20:34
下一篇 2024-12-02 20:34

相關推薦

  • PHP和Python哪個好找工作?

    PHP和Python都是非常流行的編程語言,它們被廣泛應用於不同領域的開發中。但是,在考慮擇業方向的時候,很多人都會有一個問題:PHP和Python哪個好找工作?這篇文章將從多個方…

    編程 2025-04-29
  • int類型變量的細節與注意事項

    本文將從 int 類型變量的定義、聲明、初始化、範圍、運算和類型轉換等方面,對 int 類型變量進行詳細闡述和講解,幫助讀者更好地掌握和應用 int 變量。 一、定義與聲明 int…

    編程 2025-04-29
  • Python3定義函數參數類型

    Python是一門動態類型語言,不需要在定義變量時顯示的指定變量類型,但是Python3中提供了函數參數類型的聲明功能,在函數定義時明確定義參數類型。在函數的形參後面加上冒號(:)…

    編程 2025-04-29
  • Python定義函數判斷奇偶數

    本文將從多個方面詳細闡述Python定義函數判斷奇偶數的方法,並提供完整的代碼示例。 一、初步了解Python函數 在介紹Python如何定義函數判斷奇偶數之前,我們先來了解一下P…

    編程 2025-04-29
  • Python input參數變量用法介紹

    本文將從多個方面對Python input括號里參數變量進行闡述與詳解,並提供相應的代碼示例。 一、基本介紹 Python input()函數用於獲取用戶輸入。當程序運行到inpu…

    編程 2025-04-29
  • Python符號定義和使用方法

    本文將從多個方面介紹Python符號的定義和使用方法,涉及注釋、變量、運算符、條件語句和循環等多個方面。 一、注釋 1、單行注釋 # 這是一條單行注釋 2、多行注釋 “”” 這是一…

    編程 2025-04-29
  • Python中的隊列定義

    本篇文章旨在深入闡述Python中隊列的定義及其應用,包括隊列的定義、隊列的類型、隊列的操作以及隊列的應用。同時,我們也會為您提供Python代碼示例。 一、隊列的定義 隊列是一種…

    編程 2025-04-29
  • Python匿名變量的使用方法

    Python中的匿名變量是指使用“_”來代替變量名的特殊變量。這篇文章將從多個方面介紹匿名變量的使用方法。 一、作為佔位符 匿名變量通常用作佔位符,用於代替一個不需要使用的變量。例…

    編程 2025-04-29
  • PHP怎麼接幣

    想要在自己的網站或應用中接受比特幣等加密貨幣的支付,就需要對該加密貨幣擁有一定的了解,並使用對應的API進行開發。本文將從多個方面詳細闡述如何使用PHP接受加密貨幣的支付。 一、環…

    編程 2025-04-29
  • Python編程技巧:如何定義一個函數n!,並計算5!

    在這篇文章中,我們將研究如何使用Python編程語言定義一個能夠計算階乘的函數,並且演示如何使用該函數計算5!。 一、階乘函數的定義 在Python中,我們可以使用一個簡單的遞歸函…

    編程 2025-04-29

發表回復

登錄後才能評論