PHP是一種流行的通用腳本語言,特別適用于Web開發(fā)。這里小編帶來了php for windows版,能夠支持32位和64位系統(tǒng),幾乎可以在所有主流操作系統(tǒng)上運(yùn)行,支持大多數(shù)Web 服務(wù)器,如 Apache、Microsoft IIS 等,支持MySQL、Front-base、Inter-base、Oracle、PostgreSQL、ODBC等多種數(shù)據(jù)庫,同時(shí)憑借其易學(xué)易用、運(yùn)行速度快以及強(qiáng)大的功能和兼容性,成為了廣大開發(fā)者的首選工具之一。
作為一種腳本語言,PHP采用了類似于HTML的語法結(jié)構(gòu),使得開發(fā)者可以快速上手并開始編寫代碼,無論是初學(xué)者還是經(jīng)驗(yàn)豐富的開發(fā)人員,都可以通過學(xué)習(xí)和使用PHP來快速開發(fā)出功能強(qiáng)大且運(yùn)行穩(wěn)定的Web后臺(tái)程序。另外軟件還提供了豐富的內(nèi)置函數(shù)和擴(kuò)展庫,使得開發(fā)者可以更加高效地完成各種任務(wù),歡迎免費(fèi)下載。
php最新版本新特性
php 8.3.7是PHP語言的主版本更新。它包含了許多新功能,例如:類常量顯式類型、只讀屬性深拷貝,以及對(duì)隨機(jī)性功能的補(bǔ)充。一如既往,它還包括性能改進(jìn)、錯(cuò)誤修復(fù)和常規(guī)清理等。1、類型化類常量
2、動(dòng)態(tài)獲取類常量
3、新增 #[\Override] 屬性
通過給方法添加 #[\Override] 屬性,PHP 將確保在父類或?qū)崿F(xiàn)的接口中存在同名的方法。添加該屬性表示明確說明覆蓋父方法是有意為之,并且簡(jiǎn)化了重構(gòu)過程,因?yàn)閯h除被覆蓋的父方法將被檢測(cè)出來。
4、只讀屬性深拷貝
readonly 屬性現(xiàn)在可以在魔術(shù)方法 __clone 中被修改一次,以此實(shí)現(xiàn)只讀屬性的深拷貝
5、新增 json_validate() 函數(shù)
json_validate() 可以檢查一個(gè)字符串是否為語法正確的 JSON,比 json_decode() 更有效。
6、新增 Randomizer::getBytesFromString() 方法
在 PHP 8.2 中新增的 Random 擴(kuò)展 通過一個(gè)新方法生成由特定字節(jié)組成的隨機(jī)字符串。這種方法可以使開發(fā)者更輕松的生成隨機(jī)的標(biāo)識(shí)符(如域名),以及任意長(zhǎng)度的數(shù)字字符串。
7、新增 Randomizer::getFloat() 和 Randomizer::nextFloat() 方法
由于浮點(diǎn)數(shù)的精度和隱式四舍五入的限制,在特定區(qū)間內(nèi)生成無偏差的浮點(diǎn)數(shù)并非易事,常建的用戶解決方案可能會(huì)生成有偏差的結(jié)果或超出要求范圍的數(shù)字。
Randomizer 擴(kuò)展了兩種方法,用于隨機(jī)生成無偏差的浮點(diǎn)數(shù)。Randomizer::getFloat() 方法使用的是 γ-section 算法
8、命令行 linter 支持多個(gè)文件
命令行 linter 現(xiàn)在接受文件名的可變輸入以進(jìn)行 lint
9、新的類、接口和函數(shù)
新增 DOMElement::getAttributeNames()、DOMElement::insertAdjacentElement()、DOMElement::insertAdjacentText()、DOMElement::toggleAttribute()、DOMNode::contains()、DOMNode::getRootNode()、DOMNode::isEqualNode()、DOMNameSpaceNode::contains() 和 DOMParentNode::replaceChildren() 方法。
新增 IntlCalendar::setDate()、IntlCalendar::setDateTime()、IntlGregorianCalendar::createFromDate() 和 IntlGregorianCalendar::createFromDateTime() 方法。
新增 ldap_connect_wallet() 和 ldap_exop_sync() 函數(shù)。
新增 mb_str_pad() 函數(shù)。
新增 posix_sysconf()、posix_pathconf()、posix_fpathconf() 和 posix_eaccess() 函數(shù)。
新增 ReflectionMethod::createFromMethodName() 方法
新增 socket_atmark() 函數(shù)。
新增 str_increment()、str_decrement() 和 stream_context_set_options() 函數(shù)。
新增 ZipArchive::getArchiveFlag() 方法。
支持在 OpenSSL 擴(kuò)展中使用自定義 EC 參數(shù)生成 EC 密鑰。
新增 INI 設(shè)置 zend.max_allowed_stack_size 用于設(shè)置允許的最大堆棧大小。
php.ini 現(xiàn)在支持后備/默認(rèn)值語法。
匿名類現(xiàn)在可以是只讀的。
軟件特色
1、內(nèi)置了對(duì)文件上傳、密碼認(rèn)證、Cookies 操作、郵件收發(fā)、 動(dòng)態(tài)GIF生成等功能。
2、PHP5直接為很多數(shù)據(jù)庫提供原本的連接,包括Oracle,Sybase,Postgres,Mysql,Informix,Dbase,Solid,Access 等,完全支持ODBC接口,用戶更換平臺(tái)時(shí),無需變換PHP代碼,可即拿即用。
3、軟件完全免費(fèi),并提供了更多web server的支持,例如Zeus,Netscape Enterprise,Apache Win32 module,并增加了很多性能,并修正了很多bug。
php配置教程
1)在PHP安裝目錄下,找到文件php5ts.dll,將其復(fù)制到C盤system32目錄下。
2)在PHP安裝目錄下,找到文件libmysql.dll,將其復(fù)制到C盤system32目錄下。
3)在PHP安裝目錄下,找到文件php.ini,將其復(fù)制到C:windows下。這個(gè)文件是配置PHP的基本文件,如設(shè)置服務(wù)器根目錄配置,用文本編輯器打開php.ini文件,找到"doc_root=",因?yàn)槲野袮pache默認(rèn)安裝在D盤根目錄下,所以,修改這個(gè)配置項(xiàng)的值為:doc_root=d:apache2htdocs
提示:用戶根據(jù)自己安裝Apache的路徑,修改該配置項(xiàng)的值。
4)在php.ini中找到“extension_dir ="./"”,這個(gè)配置項(xiàng)用來載入PHP的擴(kuò)展模塊,修改該配置項(xiàng)如下:extension_dir = d:phpext,(需要按自己的安裝目錄修改PHP的載入位置)。
5)在php.ini中找到“;extension=php_mysql.dll”,把這項(xiàng)前面的分號(hào)去掉,表示使這個(gè)項(xiàng)生效。這個(gè)配置項(xiàng)用來使PHP支持MySQL,這里分號(hào)起注釋作用。修改完P(guān)HP的配置文件php.ini后,保存退出該文件。
6)進(jìn)行Apache的配置。轉(zhuǎn)到Apache的安裝目錄下的conf目錄,用文本編輯器打開Apache的配置文件http.conf。在此文件中找到 dynamic shared (DOS) Support,在LoadModule行的最后添加如下配置項(xiàng):LoadModule php5_module d:/php/php5apache2.dll,(需要按自己的安裝目錄修改PHP的載入位置)。該項(xiàng)是通過Apache來載入PHP模塊php5apache2.dll,即PHP以Apache的一個(gè)模塊來運(yùn)行。
7)為了讓Apache支持.php后綴的文件,在http.conf中找到AddType項(xiàng),在最后添加如下配置項(xiàng):AddType application/x-httpd-php.php。找到directoryIndex,在最后添加index.php。為了支持中文,找到AddDefaultCharset ISO-8859-1改為AddDefaultCharset GB2312。修改完后保存http.conf。即完成Apache的基本配置。
Thread Safe和Non Thread Safe怎么選擇?
1、PHP 有兩種服務(wù)模式:ISAPI 和 FastCGI 。ISAPI 服務(wù)模式是以 DLL 動(dòng)態(tài)庫的形式被調(diào)用,可以在被用戶請(qǐng)求后執(zhí)行,在處理完一個(gè)用戶請(qǐng)求后不會(huì)馬上消失,所以需要進(jìn)行線程安全檢查,以防止耗盡系統(tǒng)資源;而 FastCGI 執(zhí)行方式則是以單一線程來執(zhí)行操作,所以不需要進(jìn)行線程的安全檢查,除去線程安全檢查反而可以提高執(zhí)行效率。
2、簡(jiǎn)單的概括就是當(dāng) PHP 以 ISAPI 模式運(yùn)行服務(wù)時(shí),選擇 Thread Safe(簡(jiǎn)稱ts) 版本;當(dāng) PHP 以 FastCGI 模式運(yùn)行服務(wù)時(shí),選擇 Non Thread Safe(簡(jiǎn)稱nts) 版本。通常,IIS 以 FastCGI 模式運(yùn)行服務(wù),只能選擇 Non Thread Safe 版本,Apache 以 ISAPI 模式運(yùn)行服務(wù),只能選擇 Thread Safe 版本。
更新日志
v8.3.7版本
1、Core:
修復(fù)了錯(cuò)誤 GH-13772(啟用 JIT 時(shí) observer fcall handlers 中的 execute_data->opline 指針無效)。
修復(fù)了錯(cuò)誤 GH-13931(將 zero offset 應(yīng)用于 Zend/zend_opcode.c 中的空指針)。
修復(fù)了錯(cuò)誤 GH-13942(將 zend-max-execution-timers 的行為與其他超時(shí)實(shí)現(xiàn)保持一致)。
修復(fù)了錯(cuò)誤 GH-14003(使用可調(diào)用轉(zhuǎn)換參數(shù)對(duì)未完成的調(diào)用進(jìn)行了 Broken cleanup)。
修復(fù)了錯(cuò)誤 GH-14013(在 configure 中 附加了錯(cuò)誤的 dnl)。
修復(fù)了錯(cuò)誤 GH-10232(如果自動(dòng)加載發(fā)生在常量解析過程中,文件名和 lineno 會(huì)被錯(cuò)誤識(shí)別)。
修復(fù)了錯(cuò)誤 GH-13727(缺少 void 關(guān)鍵字)。
2、Fibers:
修復(fù)了錯(cuò)誤 GH-13903(執(zhí)行 copy () 時(shí)出現(xiàn) ASAN false positive underflow)。
3、Fileinfo:
修復(fù)了錯(cuò)誤 GH-13795(在 big-endian PPC 上測(cè)試 ext/fileinfo/tests/bug78987.phpt 失敗)。
4、FPM:
修復(fù)了錯(cuò)誤 GH-13563(通過 FPM 配置中的 env 設(shè)置 bool 值失敗)。
5、Intl:
修復(fù)了 icu 74 及以上版本的構(gòu)建。
6、MySQLnd:
修復(fù) 32-bit non-fast-path platforms 上的移位越界問題。
7、Opcache:
修復(fù)了錯(cuò)誤 GH-13433(使用 opcache.preload 時(shí) zend_class_init_statics 中的 Segmentation Fault)。
修復(fù)了靜態(tài)調(diào)用跨編譯單元的錯(cuò)誤假設(shè)。
8、OpenSSL:
修復(fù)了錯(cuò)誤 GH-10495(OpenSSL stream 上的 feof 無限期掛起)。
9、PDO SQLite:
修復(fù) GH-13984(現(xiàn)在在 memcmp 之前檢查緩沖區(qū)大小)。
修復(fù) GH-13998(正確管理 agg_context->val 的 refcount)。
10、Phar:
修復(fù)了錯(cuò)誤 GH-13836(將 Phar 中的文件重命名為已存在的文件名會(huì)導(dǎo)致 NULL 指針取消引用)。
修復(fù)了錯(cuò)誤 GH-13833(將 zero offset 應(yīng)用于 zend_hash.c 中的空指針)。
在調(diào)用 EVP_SignInit 之前修復(fù)潛在的 NULL 指針取消引用。
11、PHPDBG:
修復(fù)了錯(cuò)誤 GH-13827(phpdbg_frame 中類型 “zval” 的空指針訪問)。
12、Posix:
修復(fù) ext/posix 中可重入函數(shù)的使用。
13、Session:
修復(fù)了錯(cuò)誤 GH-13856(ext/session/mod_files.c 中 “ps_files” 類型的空指針內(nèi)的 Member access)。
修復(fù)了錯(cuò)誤 GH-13891(在 session.trans_sid_hosts 中使用 ini_set 時(shí)的 memleak 和 segfault)。
修復(fù)了 Windows 上文件模式的緩沖區(qū) _read/_write 大小限制。14、Streams:
修復(fù)了 Windows 上的 file_get_contents () 失敗并顯示 “errno=22 Invalid argument” 的錯(cuò)誤。
修復(fù)了錯(cuò)誤 GH-13264(Part 1 - stream filter failure 時(shí)內(nèi)存泄漏)。
修復(fù)了錯(cuò)誤 GH-13860(ext/openssl/xp_ssl.c 中的 PHP_STREAM_OPTION_CHECK_LIVENESS 情況不正確 - 導(dǎo)致使用 dead socket)。
修復(fù)了錯(cuò)誤 GH-11678(在 musl 1.2.4 - lfs64 上 Build 失敗)。
15、Treewide:
修復(fù) gcc-14 Wcalloc-transpose-args 警告。



