php是弱類型還是強類型優(yōu)秀

格式:DOC 上傳日期:2023-04-20 08:11:13
php是弱類型還是強類型優(yōu)秀
時間:2023-04-20 08:11:13     小編:zdfb

每個人都曾試圖在平淡的學(xué)習(xí)、工作和生活中寫一篇文章。寫作是培養(yǎng)人的觀察、聯(lián)想、想象、思維和記憶的重要手段。大家想知道怎么樣才能寫一篇比較優(yōu)質(zhì)的范文嗎?以下是小編為大家收集的優(yōu)秀范文,歡迎大家分享閱讀。

php是弱類型還是強類型篇一

導(dǎo)語:php是弱類型,動態(tài)的語言腳本。在申明一個變量的時候,并不需要指明它保存的數(shù)據(jù)類型。下面就由小編為大家介紹一下php弱類型變量是如何實現(xiàn)的吧,歡迎大家閱讀!

例如:

$var=1;

$var="variable";

$var=1.00;

$var=array();

$var=newobject();

動態(tài)變量,在運行期間是可以改變的,并且在使用前無需聲明變量類型。

問題一、zend引擎是如何用c實現(xiàn)這種弱類型的'呢?

實際上,在php中聲明的變量,在ze中都是用結(jié)構(gòu)體zval來保存的。

首先我們打開zend/zend.h來看zval的定義:

typedefstruct_zval_structzval;

struct_zval_struct{

/*variableinformation*/

zvalue_valuevalue;/*value*/

zend_uintrefcount__gc;

zend_uchartype;/*activetype*/

zend_ucharis_ref__gc; };

typedefunion_zvalue_value{ longlval;/*longvalue*/

doubledval;/*doublevalue*/

struct

{ char*val;

intlen;

}str; hashtable*ht;

/*hashtablevalue*/ zend_object_valueobj;

}zvalue_value;

zend/zend_types.h:

typedefunsignedcharzend_bool;

typedefunsignedcharzend_uchar;

typedefunsignedintzend_uint;

typedefunsignedlongzend_ulong;

typedefunsignedshortzend_ushort;

從上述代碼中,可以看到_zvalue_value是真正保存數(shù)據(jù)的關(guān)鍵部分。通過共用體實現(xiàn)的弱類型變量聲明

問題二、zend引擎是如何判別、存儲php中的多種數(shù)據(jù)類型的呢?

中存儲著一個變量的真正類型,根據(jù)type來選擇如何獲取zvalue_value的值。

type值列表(zend/zend.h):

#defineis_null 0

#defineis_long 1

#defineis_double 2

#defineis_bool 3

#defineis_array 4

#defineis_object 5

#defineis_string 6

#defineis_resource 7

#defineis_constant 8

#defineis_constant_array 9

來看一個簡單的例子:

$a=1; //=is_long,就去取lval.

$a=array();

//=is_array,就去取ht.

這其中最復(fù)雜的,并且在開發(fā)第三方擴展中經(jīng)常需要用到的是”資源類型”.

在php中,任何不屬于php的內(nèi)建的變量類型的變量,都會被看作資源來進行保存。

比如:數(shù)據(jù)庫句柄、打開的文件句柄、打開的socket句柄。

資源類型,會用lval,此時它是一個整型指示器, 然后php會再根據(jù)這個指示器在php內(nèi)建的一個資源列表中查詢相對應(yīng)的資源。

正是因為ze這樣的處理方式,使php就實現(xiàn)了弱類型,而對于ze的來說,它所面對的永遠都是同一種類型zval。

s("content_relate");

【php弱類型變量是如何實現(xiàn)的】相關(guān)文章:

php變量類型和整型類型細節(jié)

08-18

php數(shù)據(jù)類型之數(shù)組變量詳解

09-17

php的變量

09-20

php變量介紹

09-20

php的變量介紹

08-21

php如何實現(xiàn)快速排序

09-02

如何用php實現(xiàn)找回密碼

09-21

php如何實現(xiàn)驗證碼

09-01

php的變量是什么

09-30

【本文地址:http://www.aiweibaby.com/zuowen/2655243.html】

全文閱讀已結(jié)束,如果需要下載本文請點擊

下載此文檔