php魔術變數,php 變數

本文目錄一覽:

stat failed for 怎麼回事

你的錯誤都是由於第一個錯誤引起的,所以後面可以先忽略。

這個錯誤產生的原因就是你的PHP找不到mode.htm這個文件的位置,你可以為該文件增加路徑描述解決這個問題。

當前的文件在PHP中可以用魔術變數__FILE__表示,因此,你的當前目錄為dirname(__FILE__)

怎麼樣在php配置中載入魔術常量

PHP中,有不少很好用的魔術變數,用好之,能事半功倍,下面小結之: 

1 _LINE_ 

  顯示當前代碼的行數: 

  echo “This is line number : “. __LINE__; 

2 _FILE_ 

   顯示當前文件的路徑 

3 _METHOD_ 

   顯示當前方法的名,比如 

   class Magicconstant 

    function __construct() 

    { 

      echo “This is function a”; 

    } 

    function b() 

   {

     echo “br/”; 

     echo “This is function b”; 

     echo “br/”; 

     echo __METHOD__; 

   } 

$cm = new Magicconstant(); 

$cm-b(); 

顯示 

   This is function a 

  This is function b 

  Magicconstant::b 

4 _FUNCTION_ 

   顯示當前所在函數的名 

  function b() 

  { 

  echo “br/”; 

echo “This is function b”; 

echo “br/”; 

echo __FUNCTION__; 

  } 

輸出: 

   This is function b 

Magicconstant::b 

5 _DIR_ 

   顯示當前目錄名,如 

  echo “The directory name is : “. __DIR__; 

輸出: 

  The directory name is : D:\wamp\www 

6 _CLASS_ 

   顯示當前的類 

class Magicconstant 

function __construct() 

echo “The class name is : “.__CLASS__; 

$cm = new Magicconstant(); 

  顯示: 

  The class name is : Magicconstant 

7 _NAMESPACE_ 

   顯示當前命名空間 

namespace MagicConstant 

   echo “The namespace is : “.__NAMESPACE__; 

輸出: 

  The namespace is : MagicConstant 

8 _sleep_ 

  _sleep_用在將類序列化之前, 

?php 

class User 

public $userName = ”; 

public $userAddress = ”; 

public $userPhone = ”; 

public function setName($name=”) 

$this-userName = $name; 

function setAddress($address=”) 

$this-userAddress = $address; 

function setPhone($phone=”) 

$this-userPhone = $phone; 

function __sleep() 

return array(‘userAddress’,’userPhone’); 

                        // This will serialize only address and Phone number but not Name 

?php 

$User = new User(); 

$User-setName(‘Avinash’); 

$User-setAddress(‘Address Here’); 

$User-setPhone(‘1234567890’); 

$serialData = serialize($User); 

echo $serialData; 

OutPut: O:4:”User”:2:{s:11:”userAddress”;s:12:”Address Here”;s:9:”userPhone”;s:10:”1234567890″;} 

程序運行時, serialize() 檢查類中是否有 __sleep() ,如果有,則該函數將在任何序列化之前運行. 該函數必須返回一個需要進行序列化保存的成員屬性數組,並且只序列化該函數返回的這些成員屬性. 該函數有兩個作用: 第一. 在序列化之前,關閉對象可能具有的任何資料庫連接等. 第二. 指定對象中需要被序列化的成員屬性,如果某個屬性比較大而不需要儲存下來,可以不把它寫進__sleep()要返回的數組中,這樣該屬性就不會被序列化 

又如: 

class Test { 

public $mySecret; //我的秘密不想讓人知道 

public function __construct($secret) { 

$this-mySecret = $secret; 

public function __sleep() { 

$this-mySecret = “你休想知道我的秘密!”; 

return array(‘mySecret’); //一定要返回變數,不然返回的是個空,所以序列化也就沒有東西了。 

$test = new Test(“我的心裡話 我愛某某某”); 

echo serialize($test); //輸出 O:4:”Test”:1:{s:8:”mySecret”;s:28:”你休想知道我的秘密!”;} 

_wakeup_ 

用在反序列化時: 

?php 

class User 

public $userName = ”; 

public $userAddress = ”; 

public $userPhone = ”; 

public function setName($name=”) 

$this-userName = $name; 

function setAddress($address=”) 

$this-userAddress = $address; 

function setPhone($phone=”) 

$this-userPhone = $phone; 

function __sleep() 

return array(‘userAddress’,’userPhone’); 

                       // This will serialize only address and Phone number but not Name 

function __wakeup() 

echo “In Wakeup function”.”br/”; 

?php 

$User = new User(); 

$User-setName(‘Avinash’); 

$User-setAddress(‘Address Here’); 

$User-setPhone(‘1234567890’); 

$serialData = serialize($User); 

echo $serialData; 

echo “br/”; 

var_dump(unserialize($serialData)); 

Output: 

In Wakeup function 

object(User)#2 (3) { 

  [“userName”]= 

  string(0) “” 

  [“userAddress”]= 

  string(12) “Address Here” 

  [“userPhone”]= 

  string(10) “1234567890” 

//以上信息轉自 不代表個人觀點 僅供參考 若滿意 請採納本答案

php 列印當前執行到的行數–為方便調試

echo ‘__LINE__’;魔術變數之__LINE__記錄了當前執行的代碼所在行的行號。

PHP有不少能夠用來直接調試的函數,查看變數、對象、數組、Everything……

下面是魔術變數

__LINE__ 文件中的當前行號。

__FILE__ 文件的完整路徑和文件名。如果用在被包含文件中,則返回被包含的文件名。自 PHP 4.0.2 起,__FILE__ 總是包含一個絕對路徑(如果是符號連接,則是解析後的絕對路徑),而在此之前的版本有時會包含一個相對路徑。

__DIR__ 文件所在的目錄。如果用在被包括文件中,則返回被包括的文件所在的目錄。它等價於dirname(__FILE__)。除非是根目錄,否則目錄中名不包括末尾的斜杠。(PHP 5.3.0中新增) =

__FUNCTION__ 函數名稱(PHP 4.3.0 新加)。自 PHP 5 起本常量返回該函數被定義時的名字(區分大小寫)。在 PHP 4 中該值總是小寫字母的。

__CLASS__ 類的名稱(PHP 4.3.0 新加)。自 PHP 5 起本常量返回該類被定義時的名字(區分大小寫)。在 PHP 4 中該值總是小寫字母的。

__METHOD__ 類的方法名(PHP 5.0.0 新加)。返回該方法被定義時的名字(區分大小寫)。

__NAMESPACE__ 當前命名空間的名稱(大小寫敏感)。這個常量是在編譯時定義的(PHP 5.3.0 新增)

php中的_LINE_與_FILE_分別代表什麼意思

這兩個常量。分別是當前文件的行數和文件名(含路徑)。。

寫在哪個 PHP 文件里。就只對這個文件有效。。不管有沒有被別的程序 include 。。

例如:

//a.php

echo __FILE__;

//b.php

include(“a.php”);

運行 b.php 結果還是 a.php。因為 __FILE__ 寫在那裡,而不是在 b.php 里。

PHP中魔術變數__METHOD__與__FUNCTION__的區別

本文實例講述了PHP中魔術變數__METHOD__與__FUNCTION__的區別,分享給大家供大家參考。具體分析如下:

__METHOD__類的方法名(PHP

5.0.0

新加)。返回該方法被定義時的名字(區分大小寫)。

__FUNCTION__函數名稱(PHP

4.3.0

新加)。自

PHP

5

起本常量返回該函數被定義時的名字(區分大小寫)。在

PHP

4

中該值總是小寫字母的。

文檔解釋都是說返回函數(方法)的名字。區別在於:

__FUNCTION__只是返回方法的名字;

__METHOD__返回類的名字和方法的名字。

?php

class

Test{

public

function

doit(){

echo

__FUNCTION__;

}

public

function

doitAgain(){

echo

__METHOD__;

}

}

$obj

=

new

Test();

$obj-doit();

echo

‘br’;

$obj-doitAgain();

?

輸出結果為:

doit

Test::doitAgain

希望本文所述對大家的PHP程序設計有所幫助。

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

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

相關推薦

  • int類型變數的細節與注意事項

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

    編程 2025-04-29
  • PHP和Python哪個好找工作?

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

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

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

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

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

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

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

    編程 2025-04-29
  • Python變數在內存中的存儲

    該文章將從多個方面對Python變數在內存中的存儲進行詳細闡述,包括變數的聲明和賦值、變數的引用和指向、內存地址的變化、內存管理機制等。 一、聲明和賦值 在Python中,變數聲明…

    編程 2025-04-29
  • Python變數類型用法介紹

    Python是一種解釋型編程語言,它提供了豐富的數據類型,包括數字、字元串、列表、元組、集合、字典等。Python變數類型的定義是Python程序開發的基礎,本文將從以下幾個方面對…

    編程 2025-04-28
  • Python print輸出變數

    Python是一種腳本語言,語法簡單易懂,目前被廣泛應用於數據處理、人工智慧、web開發、遊戲開發等領域。其中print函數是Python中最常用的函數之一,用於將變數輸出到控制台…

    編程 2025-04-28
  • Python定義變數

    Python是一門高級編程語言,變數是Python編程中非常重要的一個概念。Python的變數定義方式非常簡單,可以在程序中隨時定義一個變數來存儲數據,這方便了整個程序的邏輯編寫,…

    編程 2025-04-28
  • Python中如何定義一個變數

    Python是一種高級編程語言,使用它您可以輕鬆地定義和操作變數。Python中的變數屬於動態類型變數,因此不需要在定義變數時指定其類型,而是在變數分配之前自動確定變數的數據類型。…

    編程 2025-04-28

發表回復

登錄後才能評論