PHP の基本的な面接の質問

WBOY
リリース: 2016-07-21 14:52:59
オリジナル
978 人が閲覧しました

1. PHP のいくつかの入力関数 echo、print()、print_r()、printf()、sprintf()、var_dump() の違い。

1.echo: 関数ではなくステートメントです。戻り値がなく、括弧なしで複数の変数値を出力できます。配列とオブジェクトは出力できません。印刷できるのは単純な型 (int、string など) のみです。

2.print: 関数ではなくステートメントです。戻り値は 1 です。出力できるのは 1 つの変数だけです。必ずしも括弧を必要とするわけではありません。単純な型のみを出力できます。 int、string など);

3.print_r(): 配列を出力する際に​​複合型(string、int、float、array、objectなど)を出力できる関数です、構造体で表現され、print_r()はprint_r($str,true) を通じて使用されます。出力はされませんが、print_r によって処理された値が返されます;

4.printf(): テキストを整形して出力する関数です

を参照してください。

5.sprintf(): printf()と似た関数ですが、印刷は行わず、書式設定されたテキストを返します(この関数は、書式設定された文字列を出力する代わりに変数に書き込みます)。その他はprintfと同じです。同じ;

6.var_dump(): 変数の内容と型、あるいは文字列の内容と型と長さを出力する関数です。

2. Cookieを無効にするセッションの使用方法、およびセッションの有効期限の方法と対応する機能を設定する方法:

1. URL を通じて値を渡し、URL にセッション ID を追加します (欠点: 純粋に静的なページのセッション ID は次のページに渡されないため、サイト全体に純粋に静的なページは存在できません);

2. フォームを非表示にして、フォームの非表示テキストボックスにセッションIDを入れてフォームと一緒に送信します(デメリット:直接ジャンプするタグなど、フォーム以外の場合には適用されません) ;

3. php.ini ファイルを直接設定し、php.ini ファイルの session.use.trans.sid = 0 を 1 に設定します。

4. セッション ID をファイル、データベースなどに保存し、クロスページ プロセス中に手動で呼び出します。

1.setCookie(session_name(),session_id(),time()+60,"/");

2.session_set_cookie_params(60);(セッションをCookieに保存);

注: php.ini の session.gc_probability / session.gc_divisor

三、ファイル内容を取得するPHPメソッド、対応する関数

1.file_get_contents() ファイルの内容を取得し(getメソッドとpostメソッドで取得可能)、ファイル全体を文字列に読み込みます;

2. fopen() を使用して URL を開き、get メソッドでコンテンツを取得します (fgets() 関数の助けを借りて);

3. fsockopen 関数を使用して URL (get メソッドと post メソッドで取得可能) を開き、get メソッドでヘッダーと本文を含む完全なデータを取得します。

4.curlライブラリを使用してコンテンツを取得するcurlライブラリを使用する前に、php.iniをチェックしてcurl拡張機能がオンになっているかどうかを確認する必要があります

4. isset()、empty()、is_nullの違い

1. 変数が未定義の場合、is_null()と「パラメータそのもの」を判定パラメータとして使用することはできず、通知警告エラーが報告されます。

2. Empty と isset は、まず変数が存在するかどうかを確認し、次に変数の値を検出します。そして is_null と「パラメータ自体」は変数値を直接チェックして null かどうかを確認するだけなので、変数が定義されていない場合はエラーが発生します。

3. isset(): nullかつ未定義の場合のみfalseを返す;

4. empty(): ""、0、"0"、NULL、FALSE、array()、未定義、すべて false を返します。

5. is_null(): null かどうかだけを判断し、定義されていない場合は警告を報告します

6. 変数自体はパラメータとして使用され、empty() と一致しますが、未定義の変数を受け入れると警告が報告されます。

5. strlen()とmb_strlenの機能と違い

PHPではstrlenとmb_strlenは文字列の長さを調べる関数です

PHPの組み込み文字列長関数strlenは、中国語の文字列を正しく処理できません。文字列が占有するバイト数のみを取得します。 GB2312 の中国語エンコードの場合、strlen で取得される値は中国語の文字数の 2 倍ですが、UTF-8 エンコードされた中国語の場合は 3 倍になります (UTF-8 エンコードでは、1 つの中国語文字が 3 バイトを占有します)。

mb_strlen関数を使用すると、この問題をよりよく解決できます。 mb_strlen の使用法は strlen と似ていますが、文字エンコーディングを指定する 2 番目のオプションのパラメーターがある点が異なります。たとえば、UTF-8 文字列 $str の長さを取得するには、mb_strlen($str,'UTF-8') を使用できます。 2 番目のパラメータを省略した場合は、PHP の内部エンコーディングが使用されます。内部エンコーディングは、mb_internal_encoding() 関数を通じて取得できます。

mb_strlen は PHP のコア関数ではないことに注意してください。使用する前に、php_mbstring.dll が php.ini にロードされていること、つまり、「extension=php_mbstring.dll」という行が存在することを確認する必要があります。存在し、コメントアウトされていない場合は、関数の定義に関するエラー メッセージが表示されます。
6. PHPでクライアントのIPアドレスを取得する方法
$_SERVER['REMOTE_ADDR'] ; グローバル配列を通じて取得します
getenv('REMOTE_ADDR') ; 環境変数を通じて取得します

クライアントがプロキシを使用すると、実際のIPアドレスを取得できなくなります

ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
人気のおすすめ
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート