當前位置:學者齋 >

計算機 >php語言 >

值得深思的PHP面試問題

值得深思的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 系統開發技術。

  • 文章版權屬於文章作者所有,轉載請註明 https://xuezhezhai.com/zh-tw/jsj/php/v3pdl2.html