php基礎之預定義變數,php定義靜態變數

本文目錄一覽:

在PHP中,預定義的常量和變數,是怎麼使用和輸出的?

幾個 PHP 的「魔術常量」

__LINE__ :文件中的當前行號。

__FILE__ :文件的完整路徑和文件名。如果用在包含文件中,則返回包含文件名。自 PHP 4.0.2 起,__FILE__ 總是包含一個絕對路徑,而在此之前的版本有時會包含一個相對路徑。

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

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

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

PHP的預定義變數和常量都有什麼?

PHP 在常量中定義了以下一些常量。

__FILE__

這個默認常量是 PHP 程序文件名。若引用文件 (include 或 require)則在引用文件內的該常量為引用文件名,而不是引用它的文件名。

__LINE__

這個默認常量是 PHP 程序行數。若引用文件 (include 或 require)則在引用文件內的該常量為引用文件的行,而不是引用它的文件行。

PHP_VERSION

這個內建常量是 PHP 程序的版本,如 ‘3.0.8-dev’。

PHP_OS

這個內建常量指執行 PHP 解析器的操作系統名稱,如 ‘Linux’。

TRUE

這個常量就是真值 (true)。

FALSE

這個常量就是偽值 (false)。

E_ERROR

這個常量指到最近的錯誤處。

E_WARNING

這個常量指到最近的警告處。

E_PARSE

本常式為解析語法有潛在問題處。

E_NOTICE

這個常式為發生不尋常但不一定是錯誤處。例如存取一個不存在的變數。

這些 E_ 開頭形式的常量,可以參考 error_reporting() 函數,有更多的相關說明。

當然在程序寫作時,以上的默認常量是不夠用。define() 的功能可以讓我們自行定義所需要的常量。見下例

?php

define(“COPYRIGHT”, “Copyright © 2000, netleader.126.com”);

echo COPYRIGHT;

?

php預定義變數有哪些

超全局變數 — 超全局變數是在全部作用域中始終可用的內置變數

$GLOBALS — 引用全局作用域中可用的全部變數

$_SERVER — 伺服器和執行環境信息

$_GET — HTTP GET 變數

$_POST — HTTP POST 變數

$_FILES — HTTP 文件上傳變數

$_REQUEST — HTTP Request 變數

$_SESSION — Session 變數

$_ENV — 環境變數

$_COOKIE — HTTP Cookies

$php_errormsg — 前一個錯誤信息

$HTTP_RAW_POST_DATA — 原生POST數據

$http_response_header — HTTP 響應頭

$argc — 傳遞給腳本的參數數目

$argv — 傳遞給腳本的參數數組

php全局變數和php預定義變數

僅供參考,更多,可以查看

預定義變數

PHP 提供了大量的預定義變數。由於許多變數依賴於運行的伺服器的版本和設置,及其它因素,所以並沒有詳細的說明文檔。一些預定義變數在 PHP 以命令行形式運行時並不生效。有關這些變數的詳細列表,請參閱預定義變數一章。

Warning

PHP 4.2.0 以及後續版本中,PHP 指令 register_globals 的默認值為 off。這是 PHP 的一個主要變化。讓 register_globals 的值為 off 將影響到預定義變數集在全局範圍內的有效性。例如,為了得到 DOCUMENT_ROOT 的值,將必須使用 $_SERVER[‘DOCUMENT_ROOT’] 代替 $DOCUMENT_ROOT,又如,使用 $_GET[‘id’] 來代替 $id 從 URL 中獲取 id 值,亦或使用 $_ENV[‘HOME’] 來代替 $HOME 獲取環境變數 HOME 的值。

更多相關信息,請閱讀 register_globals 的配置項條目,安全一章中的使用 Register Globals,以及 PHP » 4.1.0 和 » 4.2.0 的發行通告。

如果有可用的 PHP 預定義變數那最好用,如超全局變數。

從 PHP 4.1.0 開始,PHP 提供了一套附加的預定數組,這些數組變數包含了來自 web 伺服器(如果可用),運行環境,和用戶輸入的數據。這些數組非常特別,它們在全局範圍內自動生效,例如,在任何範圍內自動生效。因此通常被稱為自動全局變數(autoglobals)或者超全局變數(superglobals)。(PHP 中沒有用戶自定義超全局變數的機制。)超全局變數羅列於下文中;但是為了得到它們的內容和關於 PHP 預定義變數的進一步的討論以及它們的本質,請參閱預定義變數。而且,你也將注意到舊的預定義數組($HTTP_*_VARS)仍舊存在。自 PHP 5.0.0 起,長格式的 PHP 預定義變數可以通過設置 register_long_arrays 來屏蔽。

Note: 可變變數 超級全局變數不能被用作可變變數。

Note: 儘管超全局變數和 HTTP_*_VARS 同時存在。但是他們並不是同一個變數,所以改變一個的值並不會對另一個產生影響。

如果某些 variables_order 中的變數沒有設定,它們的對應的 PHP 預定義數組也是空的。

PHP 超全局變數

$GLOBALS

包含一個引用指向每個當前腳本的全局範圍內有效的變數。該數組的鍵名為全局變數的名稱。從 PHP 3 開始存在 $GLOBALS 數組。

$_SERVER

變數由 web 伺服器設定或者直接與當前腳本的執行環境相關聯。類似於舊數組 $HTTP_SERVER_VARS 數組(依然有效,但反對使用)。

$_GET

經由 URL 請求提交至腳本的變數。類似於舊數組 $HTTP_GET_VARS 數組(依然有效,但反對使用)。

$_POST

經由 HTTP POST 方法提交至腳本的變數。類似於舊數組 $HTTP_POST_VARS 數組(依然有效,但反對使用)。

$_COOKIE

經由 HTTP Cookies 方法提交至腳本的變數。類似於舊數組 $HTTP_COOKIE_VARS 數組(依然有效,但反對使用)。

$_FILES

經由 HTTP POST 文件上傳而提交至腳本的變數。類似於舊數組 $HTTP_POST_FILES 數組(依然有效,但反對使用)。詳細信息請參閱 POST 方法上傳。

$_ENV

執行環境提交至腳本的變數。類似於舊數組 $HTTP_ENV_VARS 數組(依然有效,但反對使用)。

$_REQUEST

經由 GET,POST 和 COOKIE 機制提交至腳本的變數,因此該數組並不值得信任。所有包含在該數組中的變數的存在與否以及變數的順序均按照 php.ini 中的 variables_order 配置指示來定義。此數組在 PHP 4.1.0 之前沒有直接對應的版本。參見 import_request_variables()。

Caution

自 PHP 4.3.0 起,$_FILES 中的文件信息不再存在於 $_REQUEST 中。

Note: 當運行於命令行模式時,此數組將不會包含 argv 和 argc 條目;它們已經存在於數組 $_SERVER 中。

$_SESSION

當前註冊給腳本會話的變數。類似於舊數組 $HTTP_SESSION_VARS 數組(依然有效,但反對使用)。

什麼是php 預定義變數

定義一個變數並初始化:$name = ”;

可以初始化任意類型的數據。

PHP如何添加預定義常量或變數

常量使用define語句定義即可

全局變數可以定義到全局變數數組$GLOBALS中

參考手冊 : …

看題主的問法,感覺”環境變數”可能符合題主要求

nginx配置PHP server的時候可以增加以下指令

fastcgi_param CUSTOM_ENV_VAR “my_env_value”;

之後只要是通過nginx訪問的PHP請求,在任何代碼中中使用 $_SERVER[‘CUSTOM_ENV_VAR’] 就能取到你需要的值

又或者在fastcgi的配置文件中增加一行:

env[CUSTOM_ENV_VAR]=”my_env_value”

之後只要是php-fastcgi處理的PHP文件,都可以通過 getenv(‘CUSTOM_ENV_VAR’); 來獲取設置的值

如果題主確實打算不親自define而要得到類似E_ALL那樣的常量的話,就需要寫點C了

題主可以新建一個自己的擴展(或者直接隨便找個你會編譯的擴展也行),在PHP_MINIT_FUNCTION中使用以下宏來定義自己的常量

REGISTER_STRINGL_CONSTANT(“MY_SITE_VERSION”, “1.0”, 3, CONST_PERSISTENT);

之後重新編譯PHP即可.

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

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

相關推薦

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

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

    編程 2025-04-29
  • Python基礎代碼用法介紹

    本文將從多個方面對Python基礎代碼進行解析和詳細闡述,力求讓讀者深刻理解Python基礎代碼。通過本文的學習,相信大家對Python的學習和應用會更加輕鬆和高效。 一、變數和數…

    編程 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中隊列的定義及其應用,包括隊列的定義、隊列的類型、隊列的操作以及隊列的應用。同時,我們也會為您提供Python代碼示例。 一、隊列的定義 隊列是一種…

    編程 2025-04-29
  • 數據結構與演算法基礎青島大學PPT解析

    本文將從多個方面對數據結構與演算法基礎青島大學PPT進行詳細的闡述,包括數據類型、集合類型、排序演算法、字元串匹配和動態規劃等內容。通過對這些內容的解析,讀者可以更好地了解數據結構與算…

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

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

    編程 2025-04-29
  • Centos7配置靜態ip

    本文將詳細闡述如何在Centos7系統中配置靜態ip。 一、查看網路介面 在配置靜態ip之前,我們首先需要查看系統中的網路介面,以確定我們需要配置的網卡是哪一個。 ifconfig…

    編程 2025-04-29
  • 樹莓派DIY無人機一:製作基礎

    本文將介紹如何使用樹莓派製作一個可飛行的小型無人機。本文將介紹樹莓派的選型、比例積木的使用、無線電通信以及如何控制飛行器的基本運動。 一、樹莓派的選型 在DIY無人機中,樹莓派是必…

    編程 2025-04-29

發表回復

登錄後才能評論