值得深思的PHP面試問題

漫長的學習生涯中,相信大家一定都接觸過知識點吧!知識點就是學習的重點。還在苦惱沒有知識點總結嗎?下面是小編整理的值得深思的PHP面試問題,希望對大家有所幫助。

值得深思的PHP面試問題

Q1

下面的輸出結果會是怎樣?

$x = 5;

echo $x;

echo "

";

echo $x+++$x++;

echo "

";

echo $x;

echo "

";

echo $x---$x--;

echo "

";

echo $x;

實際運行結果是

5

11

7

1

5

關於 $x++ 和 $x–這個問題其實非常容易遇見,我們只需記住$x++使用最近的值,然後才自增。

運算符的優先級,++ 是明顯高於 +,因此先執行++ 再執行 + 。關於運算符的優先級,有的時候我們真的可以通過括號來讓我們的程序更讓人直觀的瞭解,畢竟代碼不光是用於執行的,有的時候或許團隊的可讀性也是提高效率的一種。

Q2

關於變量的引用;

$a = '1';

$b = &$a;

$b = "2$b";

請問 $a 和 $b的值各位多少

部分第一時間會想到 $a=’1′ $b=’21′,仔細一看 $b=&$a,這裏$b是變量$a的引用而不是直接 賦值。

Q3

$x應該是輸出什麼?

$x = true and false;

var_dump($x);

部分同學或許會第一時間想到false,實際上這裏依舊是強調運算符的優先級,= 會比 and級別高點,因此等同下面的代碼

$x = true;

true and false

答案顯而易見。

Q4

經過下面的運算 $x的值應該是多少?

$x = 3 + "15%" + "$25"

答案是18,PHP是會根據上下文實現類型的.自動轉換

上面的代碼我們可以這樣理解,如果我們在與字符串進行數學運算,實際php會盡可能將字符串中的數組進行轉換,如果是數字開頭的話則轉換成改數字比如”15%”會變成15,如果不是數字開頭則會變成0; 上面的運算類似下面 :

$x = 3 + 15 + 0

Q5

運行下面的代碼,$text 的值是多少?strlen($text)又會返回什麼結果?

$text = 'John ';

$text[10] = 'Doe';

上面代碼執行完畢後 $text = “John D”(John後面會有連續的5個空格) strlen($text)會返回11

$text[10] = “Doe”給某個字符串具體的某個位置具體字符時候,實際只會把D賦給$text. 雖然$text纔開始只有5個自負長度,但是php會默認填充空格。這和別的語言有些差別。

Q6

下面的輸出結果會是什麼

$v = 1;

$m = 2;

$l = 3;

if( $l > $m > $v){

echo "yes";

}else{

echo "no";

}

實際的輸出是”no”,只要仔細分析就不難得出

$l>$m 會轉換成1 ,則這個時候再和$m比較。

Q7

執行下面代碼$x會變成什麼值呢?

$x = NULL;

if ('0xFF' == 255) {

$x = (int)'0xFF';

}

實際的運行結果是$x=0而不是255.

首先’oxFF’ == 255我們好判斷,會進行轉換將16進制數字轉換成10進制數字,0xff -> 255.

PHP使用is_numeric_string 判斷字符串是否包含十六進制數字然後進行轉換。

但是$x = (int)’0xFF’;是否也會變成255呢?顯然不是,將一個字符串進行強制類型轉換實際上用的是convert_to_long,它實際上是將字符串從左向右進行轉換,遇到非數字字符則停止。因此0xFF到x就停止了。所以$x=0

php學習之php配置

安裝

從網上下載php最新版本。

1.拷貝php目錄到C盤目錄下。

2.把php目錄下的文件拷貝到c:windows/system32目錄下。

3.打開php目錄,把_dest文件改成,做配置文件。

4.打開文件,把裏面的extension=php_和extension=php_前面的分號去掉,這樣php就可以支持GD2函數和mysql數據庫了。

5.重啓apahce。

這樣就簡單配置好了php。

二配置文件

然後簡單講一講php配置文件。

“;”表示註釋,如果要開啓某一個擴展,只要刪除前面的“;”即可。

max_execution_time = 30 最大執行時間爲30秒

max_input_time = 60 最大輸入數據時間60秒

memory_limit = 128m 每個腳本佔用內存最大爲128m

error_reporting = E_ALL&~E_NOTICE 顯示warning和error信息

displaye_errors =On 顯示錯誤開關爲開

post_max_size = 8m post數據最大爲8m

file_uploads = On 文件上傳開關爲開

upload_max_filesize = 8m 文件上傳最大爲8m

extension = php_ 調用壓縮包

zone = "Asia/Chongqing" 把時區設爲中國

_path = "c:/temp" session保存目錄

extension_dir = "c:phpext" php的功能擴展目錄

以上是簡單的php配置,只是一個簡單的介紹而已,以後會更詳細的講解php的配置,以方便php學習人員增加自己的知識。

PHP語言介紹

PHP 是英文 Hypertext Preprocessor ( 超文本預處理器 ) 的縮寫。它是一種服務器端的腳本編程語言,其特點是簡單、面向對象、解釋執行、健壯安全、獨立於架構、可移植、動態。自 PHP5 正式發佈以來, PHP 以其方便快速的風格、豐富的函數功能和開放的源代碼,迅速在 web 系統開發中佔有了重要地位,正成爲世界上最流行的 web 應用程序編程語言之一。

PHP 最初於 1994 年開始設計。 1995 年發佈第一版,定名爲 PHP Tools ,提供了留言本、計數器等簡單功能。同年第二版 PHP 問市,定名爲 PHP/FI ,在其中加入了 mSQL 的支持,自此奠定了 PHP 在動態網頁開發上的影響力。在 1996 年底,有一萬五千個 Web 網站使用 PHP/FI , 1997 年則增加到超過五萬個。 1997 年開始了第三版的開發計劃,發佈時定名爲 PHP3 。 PHP3 跟 Apache 服務器緊密結合,幾乎支持所有數據庫系統,執行效率極高,這使得在 1999 年使用 PHP 技術的網站超過了十五萬。 2000 年 5 月, PHP4.0 正式發佈。它使用了 Zend 引擎,採用了一些新的語言結構,提供更高的性能,支持更多的 Web 服務器,支持 HTTP Sessions ,支持輸出緩存,處理用戶輸入更安全,運行速度更快。 2004 年 7 月, PHP5 問世。無論對於 PHP 語言本身還是 PHP 的用戶來講, PHP5 發佈都算是一個里程碑式的版本。 PHP5 的誕生,使 PHP編程進入了一個新時代。 Zend II 引擎的採用,完備的對象模型,改進的語法設計,使得 PHP 成爲一個設計完備、真正具有面向對象能力的腳本語言。 PHP5 的出現,給整個 Web 開發帶來新的革命性的發展。

在編寫動態 Web 頁面時,用戶可以混合使用 PHP 和 HTML 。當客戶端瀏覽到這種頁面時,服務器端首先對頁面中的 PHP 命令進行處理,然後把處理後的結果連同 HTML 內容一起傳送到客戶端。 PHP 作爲一種源代碼開放程序,擁有很好的跨平臺兼容性。用戶可以在諸如Windows 系統、 Unix 系統等操作系統上運行 PHP ,而且可以將 PHP 作爲 Apache 服務器的內置模塊或 CGI 程序運行。

除了能夠精確顯示 Web 頁面的內容,用戶還可以使用 PHP 發送 HTTP 報頭。用戶可以通過 PHP 設置 cookies ,管理用戶身份識別,並對用戶瀏覽頁面進行重定向。 PHP 還具有非常強大的數據庫支持功能,能夠訪問幾乎目前所有較爲流行的數據庫系統。此外, PHP 還可以與多個第三方系統集成,爲用戶提供更多的實用功能,如生成 PDF 文件等。

在 Web 頁面中,所有 PHP 代碼都放置在 “ ”中。此外,用戶還可以選擇使用的形式。 PHP 引擎會自動識別並處理頁面中所有位於 PHP 定界符之間的代碼。

PHP 腳本語言的語法結構與 C 語言和 Perl 語言非常相似。用戶在使用變量前不需要對變量進行聲明。使用 PHP 創建數組的過程也非常簡單。 PHP 還具有基本的面向對象組件功能,可以極大的方便用戶有效組織和封裝自己編寫的代碼。

PHP 完全免費,可以從 PHP 官方站點 () 自由下載並安裝。用戶可以不受限制地獲得源碼,並且可以加入自行開發的功能。中加進你自己需要的特色。

總之,使用 PHP編程的最大好處是編程語言非常容易,系統功能庫非常豐富。用戶只需要很少的編程知識就能使用 PHP 建立一個真正交互的 Web 站點。 PHP 正迅速變成一種標準的、多用途的、面向對象的腳本語言,成爲新一代先進流行的 Web 系統開發技術。