PHP 筆記試験の質問と面接の質問、PHP テストの質問と面接_PHP チュートリアル

WBOY
リリース: 2016-07-13 09:44:30
オリジナル
2017 人が閲覧しました
<p></p> <h2>PHP筆記試験問題と面接問題、PHP試験問題と面接</h2> <p><span>1. 新しい変数を使用せずに、2つの既存の変数の値を直接交換します</span></p> リーリー <span>2. PHP でデジタル金額を大小のフォーマットに変換し、同時にその考え方を説明します</span> リーリー <span>3. SQL クエリ ステートメントは次のとおりです: <br>select * from table where (ID = 10) or (ID = 32) or (ID = 22) or (ID = 76) or (ID = 13) or (ID = 44) Let 10, 32, 22, 76, 13, 44の順に結果が取得されます。どう書けばよいでしょうか? </span> リーリー <p><span>4. PHP を使用して前日の時刻を出力します。形式は 2006-5-10 22:21:21 です</span></p> <table border="1" cellspacing="0" cellpadding="2"> <tbody> <tr> <td> <span><code>(1)</code><code>echo</code> <code>date</code><code>(</code><code>'Y-m-d H:i:s'</code><code>,time()-60*60*24);</code></span> <span><code>(2)</code><code>echo</code> <code>date</code><code>(</code><code>'Y-m-d H:i:s'</code><code>,</code><code>strtotime</code><code>(</code><code>'-1 day'</code><code>))</code></span> </td> </tr> </tbody> </table> <p><span>5. echo()、print()、print_r()の違い</span></p> <table border="1" cellspacing="0" cellpadding="2"> <tbody> <tr> <td> <span><code>echo</code><code>是语言结构,无返回值;</code><code>print</code><code>功能和</code><code>echo</code><code>基本相同,不同的是</code><code>print</code><code>是函数,有返回值;print_r是递归打印,用于输出数组或对象</code></span> </td> </tr> </tbody> </table> <p><span>6. HTMLとPHPを分離できるテンプレート</span></p> <table border="1" cellspacing="0" cellpadding="2"> <tbody> <tr> <td> <code><code><span>PHP本身是一种模版引擎,我用过的是smarty,常见的还有PHPLib,FastTemplate,Savant</span></code>PHP 自体は、smarty を使用したテンプレート エンジンです。一般的なものには、PHPLib、FastTemplate、Savant があります。</code> </td> </tr> </tbody> </table> <p><span>7. バージョン管理にはどのようなツールが使用されますか? </span></p> <table border="1" cellspacing="0" cellpadding="2"> <tbody> <tr> <td> <code><code><span>CVS和SVN,SVN号称下一代CVS,功能强大,不过CVS是老牌,市占率很高.CVS Server on Apache作服务端,WinCVS作客户端;<br>Subversion on Apache/DAV 做服务端,TortoiseSVN做客户端,或者Subclipse做客户端</span></code> CVS と SVN SVN は次世代の CVS として知られており強力な機能を持っていますが、CVS は高いシェアを誇る古いブランドであり、サーバーとしては Apache 上の CVS Server が使用され、WinCVS が使用されます。 client;<br>Apache/DAV 上の Subversion サーバーとして、TortoiseSVN として、または Subclipse としてクライアント</code> </td> </tr> </tbody> </table> <p> <span></span>8. 文字列反転を実装するには? </p> <table border="1" cellspacing="0" cellpadding="2"> <tbody> <tr> <td> <span> <code>其实PHP本身就有字符串翻转的函数:</code><code>strrev</code><code>(),不过这种方法都不能解决中文字符串翻转的问题,会出错的。</code></span><code><span><?php</span></code> <code><span><?php<code>function</code> <code>reverse(</code><code>$var</code><code>)</code></code> </span><span>{<code>$res</code><code>=</code><code>""</code><code>;</code> </span><span><code>for</code><code>(</code><code>$i</code><code>=0,</code><code>$j</code><code>=</code><code>strlen</code><code>(</code><code>$var</code><code>);</code><code>$i</code><code><</code><code>$j</code><code>;</code><code>$i</code><code>++)</code> </span><span>{<code>$res</code><code>=</code><code>$var</code><code>[</code><code>$i</code><code>].</code><code>$res</code><code>;</code> </span><code><span>}</span></code><span> <コード><code>return</code> <code>$res</code><code>;</code>}</span></code> <code><span>}</span></code><span><code>$tmpvar</code><code>=</code><code>"wofang"</code><code>;</code> <コード></span>}<span></code> <code>$res</code><code>=reverse(</code><code>$tmpvar</code><code>);</code></span><span> <code>echo</code> <code>$res</code><code>;</code></span><code><span>?></span></code> </td> </tr> </tbody> <code></code> </table>?>🎜 🎜 🎜 🎜 🎜<span>9. MYSQLデータベースを最適化する方法</span> <table border="1" cellspacing="0" cellpadding="2"> <tbody> <tr> <td> <code><code><span>(1).数据库设计方面,这是DBA和Architect的责任,设计结构良好的数据库,必要的时候,去正规化(英文是这个:denormalize),<br>    允许部分数据冗余,避免JOIN操作,以提高查询效率</span></code>(1)。データベース設計に関しては、これは DBA とアーキテクトの責任です。必要に応じて、非正規化 (英語では denormalize)、部分的なデータを許可します。冗長性、クエリ効率を向上させるために JOIN 操作を回避します<code><span>(2).系统架构设计方面,表散列,把海量数据散列到几个不同的表里面.快慢表,快表只留最新数据,慢表是历史存档.集群,主服务器Read & write,<br>    从服务器read only,或者N台服务器,各机器互为Master</span></code></code> <code><span>(3).(1)和(2)超越PHP Programmer的要求了,会更好,不会没关系.检查有没有少加索引</span></code>(2)。システム アーキテクチャ設計の観点から、テーブル ハッシュは、大量のデータを複数の異なるテーブルにハッシュするために使用されます。高速テーブルには最新のデータのみが保持され、低速テーブルには履歴アーカイブが保存されます。クラスタ、メイン サーバー 読み取りおよび書き込み。<br> サーバーからの読み取り専用、または N サーバー、各マシンは相互のマスターになります<code><span>(4).写高效的SQL语句,看看有没有写低效的SQL语句,比如生成笛卡尔积的全连接啊,大量的Group By和order by,没有limit等等.<br>    必要的时候,把数据库逻辑封装到DBMS端的存储过程里面.缓存查询结果,explain每一个sql语句</span></code> <code><span>(3)。(1) と (2) は PHP プログラマーの要件を超えていますが、インデックスが少ないかどうかを確認してください。</span></code> <code><code>(5).所得皆必须,只从数据库取必需的数据,比如查询某篇文章的评论数,select </code><code>count</code><code>(*) … where article_id = ? <br>    就可以了,不要先select * … where article_id = ?然后msql_num_rows.</code>(4). 効率的な SQL ステートメントを作成し、デカルト積を生成する完全結合、多数の Group By および order by、制限なしなど、非効率な SQL ステートメントがないかどうかを確認します。必要に応じて、データベース ロジックを DBMS 側のストアド プロシージャにカプセル化し、クエリ結果をキャッシュし、各 SQL ステートメントを説明します</code> <span><code>    </code><code>只传送必须的SQL语句,比如修改文章的时候,如果用户只修改了标题,那就update … set title = ? where article_id = ?<br>    不要set content = ?(大文本)</code></span> <code><span>(6).必要的时候用不同的存储引擎.比如InnoDB可以减少死锁.HEAP可以提高一个数量级的查询速度</span></code> </td> </tr> <code></code> </tbody>(6): 必要に応じて別のストレージ エンジンを使用すると、HEAP によりクエリ速度が大幅に向上します</table>。 <p> <span> </span> </p> <table border="1" cellspacing="0" cellpadding="2"><tbody>10. PHP を使用して、クライアント IP とサーバー IP を表示するコードを記述します:<tr> <td> <span> <code>echo</code> <code>'客户端IP:'</code><code>.</code><code>$_SERVER</code><code>[</code><code>'REMOTE_ADDR'</code><code>].</code><code>'<br />'</code><code>;</code> </span> <span> <code>echo</code> <code>'服务器端IP:'</code><code>.</code><code>gethostbyname</code><code>(</code><code>$_SERVER</code><code>[</code><code>'SERVER_NAME'</code><code>]);</code></span> </td> </tr> </tbody></table> <p> <span> </span> </p> <table border="1" cellspacing="0" cellpadding="2"><tbody>11. PHP では、現在のスクリプトの名前 (パスとクエリ文字列を除く) が事前定義された変数 (1) に記録され、現在のページにリンクする URL が事前定義された変数 (2) に記録されます。以前に実行したスクリプトの絶対パス名 (3)、現在のページを閲覧しているユーザーの IP アドレス (4)、クエリ文字列 (URL の最初の疑問符? の後の内容): id=1&bi=2( 5 )、現在実行中のスクリプトが配置されているドキュメント ルート ディレクトリ (6)。 <tr> <td> <span> <code>(1)</code><code>$_SERVER</code><code>[</code><code>'SCRIPT_FILENAME'</code><code>];或者</code><code>$_SERVER</code><code>[</code><code>'PHP_SELF'</code><code>]<br>(2)</code><code>$_SERVER</code><code>[</code><code>'HTTP_REFERER'</code><code>]</code> </span> <span> <code>(3)</code><code>$_SERVER</code><code>[</code><code>'SCRIPT_FILENAME'</code><code>];<br>(4)</code><code>$_SERVER</code><code>[</code><code>'REMOTE_ADDR'</code><code>];<br>(5)</code><code>$_SERVER</code><code>[</code><code>'QUERY_STRING'</code><code>];<br>(6)</code><code>$_server</code><code>[</code><code>'DOCUMENT_ROOT'</code><code>];</code></span> </td> </tr> </tbody></table> <p> <span> </span> </p> <table border="1" cellspacing="0" cellpadding="2"><tbody>12. プログラムセグメントを実行すると、__が出力されます。 <tr> <td> <span> <code>(1)</code><code>echo</code> <code>8%(-2)。输出:0</code> </span> <span> <code>(2)</code><code>echo</code> <code>(-8)%3 .输出:-2</code></span><span> <code>(3)</code><code>echo</code> <code>8%(-3).输出:2</code></span> </td> </tr> </tbody></table> <p> <span> </span> </p> <table border="1" cellspacing="0" cellpadding="2"><tbody>13. 配列関数 arsort の関数は ____ 、ステートメント error_reporting(2047) の関数は ____ です。 <tr> <td> <code><span>arsort:对数组进行逆向排序并保持索引关系</span></code> <span> <code>error_reporting</code><code>(2047)的作用是:report All errors </code><code>and</code> <code>warnings</code> </span> <code></code> </td>arsort: 配列を逆にソートし、インデックス関係を維持します</tr> </tbody></table>🎜 🎜 🎜 🎜 🎜<span>14. Web ページ上のすべての JS/VBS スクリプトをフィルターするための正規表現を作成します (つまり、script タグとそのコンテンツを削除します)。 </span> <table border="1" cellspacing="0" cellpadding="2"> <tbody> <tr> <td> <span><code>$a</code><code>=</code><code>"<script type='text/javascript'>XXXXXXXXXXXXXXX</script>"</code><code>;<br></code><code>echo</code> <code>preg_replace(</code><code>'/<script[^>]*?>.*</script>/is'</code><code>,</code><code>''</code><code>,</code><code>$a</code><code>);</code> </span> </td> </tr> </tbody> </table>15. PHP を Apache モジュールとしてインストールするには、まずステートメント ____ を使用して、ファイル http.conf に PHP モジュールを動的にロードします。 <span></span>次に、ステートメント ____ を使用して、拡張子 php を持つすべてのファイルを Apache に PHP スクリプトとして処理させます。 <p><span> </span> </p> <table border="1" cellspacing="0" cellpadding="2"> <tbody> <tr> <td> <span> <code><code>LoadModule php5_module </code><code>"c:/php/php5apache2.dll"</code><code>;</code>AddType application/x-httpd-php .php</code></span> <code><span>AddType application/x-httpd-php .php</span></code> </td> </tr> </tbody> </table>16. クラスの属性をシリアル化してセッションに保存できるため、後でクラス全体を復元できます。 使用する関数は <span> です。 </span> <table border="1" cellspacing="0" cellpadding="2"> <tbody> <tr> <code><td>serialize() /unserialize()<code><span>serialize() /unserialize()</span></code> </td> </code> </tr> </tbody> </table> <span><span>17.</span>MySQL データベース、最適化する方法は?</span> <p><span>(1) 構成の最適化 (サーバー構成) (2) テーブル作成の最適化 (テーブル、フィールド設定) (3) クエリの最適化 (SQL ステートメント) 答え: 1. 最も適切なフィールド属性を選択し、定義されたフィールドの長さを削減します。可能な限り、フィールドを NOT NULL (「都道府県、性別」など)、できれば ENUM に設定するようにしてください。 2. JOIN を使用してサブクエリを置き換えます。 3. UNION を使用して、手動で作成した一時テーブルを置き換えます。 4. トランザクション処理: 5. をロックします。テーブルを作成し、トランザクション処理を最適化します: 6. 外部キーを使用して、ロックされたテーブルを最適化します。 7. インデックスを作成します。 8. クエリ ステートメントを最適化します </span></p> <p><span>18. データベース内のトランザクションとは何ですか? </span></p>トランザクションは、単位としてのデータベース操作の順序付けされたセットです。グループ内のすべての操作が成功した場合、トランザクションは成功したとみなされます。1 つの操作だけが失敗した場合でも、トランザクションは成功とは言えません。すべての操作が完了すると、トランザクションはコミットされ、その変更は他のすべてのデータベース プロセスに適用されます。操作が失敗した場合、トランザクションはロールバックされ、トランザクション内のすべての操作の効果はキャンセルされます。 <p><span> </span></p>19.SESSIONの生存時間を変更する方法<p><span> </span></p>方法 1: php.ini の session.gc_maxlifetime を 9999 に設定し、Apache を再起動します <p><span> </span></p>方法 2: $savePath = "./session_save_dir/"; $lifeTime = 時間 * 秒; <p><span> session_save_path($savePath); </span></p> session_set_cookie_params($lifeTime); <p><span>方法 3: setcookie() と session_set_cookie_params($lifeTime); </span></p> <p>20.<span>PHP Development Resource Network のホームページのような Web ページのアドレスがあります: http://www.phpres.com/index.html、そのコンテンツを取得するにはどうすればよいですか?</span></p> <span>方法 1 (PHP5 以降の場合): </span> <span>$readcontents = fopen("http://www.phpres.com/index.html", "rb"); $contents = stream_get_contents($readcontents); </span>方法 2: echo file_get_contents("http://www.phpres.com/index.html"); <span>21. ASP、PHP、JSPの長所と短所について話します</span> <span>ASP (Active Server Pages の正式名) は、動的で対話型の高性能 WEB サービス アプリケーションを生成および実行するために使用できる WEB サーバー側開発環境です。 ASP は、独自の開発言語としてスクリプト言語 VB Script (Java スクリプト) を使用します。 </span>PHP は、クロスプラットフォームのサーバーサイド埋め込みスクリプト言語であり、C、Java、Perl 言語から多くの構文を借用し、Web 開発者が動的に生成されるページを迅速に作成できるようにするために、最新のデータベースをサポートしています。もう1つのポイントは、PHPは完全に無料でお金は必要なく、制限なくソースコードを入手でき、必要な機能を追加することもできます。 <span>JSP は、Sun が発表した新世代の Web サイト開発言語で、現在の ASP と PHP に共通する問題を完全に解決します。JSP は、Serverlet と JavaBean のサポートにより強力になります。 </span> <span>これら 3 つはすべて、HTML コードに特定のプログラム コードを混合し、言語エンジンにプログラム コードを解釈して実行させる機能を提供します。ただし、JSP コードはサーブレットにコンパイルされ、Java 仮想マシンによって解釈および実行されます。このコンパイル操作は、JSP ページの最初のリクエストでのみ発生します。 ASP、PHP、および JSP 環境では、HTML コードは主に情報の表示スタイルを記述し、プログラム コードは処理ロジックを記述するために使用されます。通常の HTML ページは Web サーバーのみに依存しますが、ASP、PHP、および JSP ページでは、プログラム コードを分析して実行するために追加の言語エンジンが必要です。プログラムコードの実行結果はHTMLコードに再埋め込まれ、ブラウザにまとめて送信されます。 ASP、PHP、および JSP はすべて Web サーバー指向のテクノロジであり、クライアント ブラウザには追加のソフトウェア サポートは必要ありません。 </span> <span>22. PHPにおける値渡しと参照渡しの違いを説明してください。いつ値を渡し、いつ参照を渡すか?</span> <span>値渡し: 関数スコープ内の値への変更は関数の外では無視されます </span> <span>参照渡し: 関数のスコープ内での値の変更は、関数の外側にも反映されます </span> <span>長所と短所: 値で渡す場合、php は値をコピーする必要があります。特に大きな文字列やオブジェクトの場合、これはコストのかかる操作になる可能性があります。 </span> <span>参照渡しでは値をコピーする必要がないため、パフォーマンスの向上に非常に役立ちます。 </span> <span>23.JSのリダイレクト機能とは何ですか? 外部JSファイルを導入するにはどうすればよいですか?</span> <span>window.location.href,<script type="text/javascript" src="js/js_function.js"></script></span> <span>24.GD ライブラリは何に使用されますか? </span> gd ライブラリは、画像を処理するための一連の API を提供します。GD ライブラリを使用して画像を処理したり、画像を生成したりできます。 Web サイトでは、通常、GD ライブラリは、サムネイルの生成や画像への透かしの追加、または Web サイト データに関するレポートの生成に使用されます。 <span> </span>================================================ === ============================================== =<span> </span> <ol data-front-font-size="18px"> <li> <span>PHP<span></span>のどのバージョンを使用していますか? <span></span></span> </li> <li>PHP <span>タグ<span>とは何ですか? </span></span> </li> <li>純粋な <span>PHP <span></span> ファイル (たとえば、クラス定義のみを含むファイル) に終了 <span></span>?><span></span> タグを含める場合、そのタグの後に改行が続かないようにしてください。 <span>あなたの理解を教えてください。 </span></span> </li> <li>クラスの自動ロード、メソッドは何ですか? <span></span> </li> <li>一重引用符と二重引用符の類似点と相違点は何ですか? <span></span> </li> <li>define() 対 Const ?<span></span> </li> <li>PHP <span><span>サービスを提供するように</span>Web <span></span>サーバーを設定する方法はたくさんあります。 <span>どれを知っていますか? </span><span> </span></span>HTML </li> <li>入出力<span>を浄化するにはどうすればよいですか? <span></span> <span></span>PHP の UTF-8 について何を知っていますか? </span> </li> <li><span>PHP は日付と時刻をどのように処理しますか? </span></li> <li> <span>================================================ === ============================================== =</span> </li>1. 配列内の各要素間の加算の反復演算を実装する関数を作成します。 注: すべての配列要素は自然数です。例: $data=array(1.2.3); プログラムでは、配列の各配列要素間で可能なさまざまな加算 (要素自体の加算を含む) 1+1=2,1+2=3,1+ を出力する必要があります。 3=4、2+2=4、2+3=5、3+3=6</ol> <span></span><span> </span><span><img src="file:///C:/Users/Administrator/AppData/Local/YNote/data/wuhao_0817@163.com/90546258eeb64d2eaafc0dd91f5d2a2f/3.png" alt="" data-media-type="image" data-attr-org-src-id="99494D98FA884540A191B819E7F03AAB" data-attr-org-img-file="file:///C:/Users/Administrator/AppData/Local/YNote/data/wuhao_0817@163.com/90546258eeb64d2eaafc0dd91f5d2a2f/3.png"> </span>2. 子供が 1 ドル未満のキャンディーを購入し、販売員に 1 ドルを渡しました。販売員は、子供にできるだけ少ない枚数の小銭を渡したいと考えています。額面が 25 セント、10 セント、5 セント、1 セントのコインが無制限に提供され、販売員が子供に最小限のコインを渡すアルゴリズムを作成するとします。 <span><img src="file:///C:/Users/Administrator/AppData/Local/YNote/data/wuhao_0817@163.com/ef07da4fb98b4271a3ce43104626814d/5.png" alt="" data-media-type="image" data-attr-org-src-id="E81152CBAE3F43AD918BE273E78D0601" data-attr-org-img-file="file:///C:/Users/Administrator/AppData/Local/YNote/data/wuhao_0817@163.com/ef07da4fb98b4271a3ce43104626814d/5.png"></span> <span><img src="file:///C:/Users/Administrator/AppData/Local/YNote/data/wuhao_0817@163.com/fc4c6e82984f428ba9210e93badf70df/6.png" alt="" data-media-type="image" data-attr-org-src-id="ED0DEC9422A74C3088A703C9539CF61B" data-attr-org-img-file="file:///C:/Users/Administrator/AppData/Local/YNote/data/wuhao_0817@163.com/fc4c6e82984f428ba9210e93badf70df/6.png"></span> <span>3. 新入社員は 10 名で、応募実績に応じて 1 位から 10 位までランク付けされ、連続する 10 桁の 4 桁の自然数が職務番号として使用されます。各人のジョブ番号はパフォーマンス ランキングで割り切れます。そのジョブ番号は何ですか? </span> <span><img src="file:///C:/Users/Administrator/AppData/Local/YNote/data/wuhao_0817@163.com/97e0e5bfd97c42cf9f8d16ee6f7fc6d7/qq%E5%9B%BE%E7%89%8720150728165032.jpg" alt="" data-media-type="image" data-attr-org-src-id="9E6991B930FA492E81BD977F316226FB" data-attr-org-img-file="file:///C:/Users/Administrator/AppData/Local/YNote/data/wuhao_0817@163.com/97e0e5bfd97c42cf9f8d16ee6f7fc6d7/qq%E5%9B%BE%E7%89%8720150728165032.jpg"></span> <span>================================================ === ============================================== =</span> <span>1. 変数を定義するには?変数が定義されているかどうかを確認するにはどうすればよいですか?変数を削除するにはどうすればよいですか?変数が空かどうかを判定する関数? </span> <span>isset() unset() empty()</span> <span>2. 可変変数とは何ですか? </span> <span> 変数の変数名を動的に設定して使用できます。 $a = 'hello' 、$$a = 'world'、${$a}=hello world</span> <span>3. 変数の代入方法にはどのようなものがありますか? </span> <span>1) 直接代入 2) 変数間の代入 3) 参照代入</span> <span>4. 引用とコピーの違いは何ですか? </span> <span>コピーとは、元の変数の内容をコピーすることです。コピーされた変数と元の変数は独自のメモリを使用し、相互に干渉しません。 参照は変数のエイリアスに相当し、実際には同じ変数の内容に異なる名前でアクセスすることを意味します。 1 つの変数の値を変更すると、もう 1 つの変数の値も変更されます。 </span> <span>5. PHP の変数の基本的なデータ型は何ですか? </span> <span>php は 8 つのプリミティブ データ型をサポートします。 含まれるもの: 4 つのスカラー型 (ブール、整数、浮動小数点/倍精度、文字列) 2 つの複合型 (配列、オブジェクト) 2 つの特殊型 (リソース、NULL) </span> <span>6. 他の型がブール型に変換されるとき、どの型が false とみなされますか? </span> <span> <span>ブール値 false、整数値 0、浮動小数点値 0.0、空の文字列、文字列 '0'、空の配列、特殊なデータ型 NULL、変数セットなし。 </span></span> <span>empty() 関数はどのような状況で true を返しますか? </span> <span>ブール値 false、整数値 0、浮動小数点値 0.0、空白文字列、文字列 '0'、array() 空配列、特殊なデータ型 NULL、属性のないオブジェクト、値が割り当てられていない変数。 </span> <span><span>7. 変数 $a が定義されているが、初期値が割り当てられていない場合、</span><span> $a==0? $a==偽? $a==''? $a==NULL? $a===NULL? </span></span> <span> 答え: echo=>何もない、var_dump=>NULL empty($b)==true? ——————————— echo=>1 , var_dump=>bool(true) この時の出力 $a++ は何でしょうか? ———————— echo=>Nothing、var_dump=>NULL ++$a の出力は何ですか? ————————— echo=>1 、var_dump=>int(1)</span> <span>8. 文字列を整数に変換する方法はいくつありますか?それを達成するにはどうすればよいでしょうか? </span> <span> 強制型変換: (整数) 文字列変数名; 直接変換: settype (文字列変数, intval); </span>9. スカラーデータと配列の最大の違いは何ですか? <span> </span> スカラーは 1 つのデータのみを保存できますが、配列は複数のデータを保存できます。 <span> </span>10. 定数はどのように定義されていますか? 定数が定義されているかどうかを確認するには?定数の値にはどのようなデータ型を使用できますか? <span> </span>define()//定数を定義、define()//定数の値はスカラー型データのみ可能です。 <span> </span>11. 定数はシステム組み込み定数とカスタム定数に分けられます。最も一般的なシステム組み込み定数の名前を教えてください。 <span> </span>__FILE__、__LINE__、PHP_OS、PHP_VERSION<span> </span>12. 2 つの同一の定数が定義されている場合、前者と後者のどちらが機能しますか? <span> </span>定数は一度定義すると再定義したり未定義にしたりできないため、前者が機能します。 <span>13. 定数と変数の違いは何ですか? </span> <span>1) 定数の前に $ 記号はありません。2) 定数は、代入ステートメントではなく、define() を通じてのみ定義できます。3) 変数は、グローバルとローカルの 2 つに分けられます。一度定義すると、再定義または未定義にすることはできず、変数は代入によって再定義されます。 5) 定数の値はスカラー データのみですが、変数のデータベース タイプには 8 つのプリミティブ データ タイプがあります。 </span> <span>14. PHP で一般的に使用されるいくつかの事前定義されたグローバル配列変数は何ですか? </span> <span>9 つの事前定義された組み込み配列変数があります: $_POST、$_GET、$_REQUEST、$_SESSION、$_COOKIE、$_FILES、$_SERVER、$_ENV、$GLOBALS</span> <span>15. 実際の開発では、定数はどこで最もよく使用されますか? </span> <span><span> </span><span>1) ユーザー名、パスワード、データベース名、データベース サーバーのホスト名など、データベースに接続するための情報を定数として定義します。2) サイトのパスの一部を定数として定義します。 Web の絶対パスおよび Smarty のインストール パスとして、モデル、ビュー、またはコントローラーのフォルダー パスとして。 3) Web サイトの名前、Web サイトのキーワード、その他の情報などの Web サイトの公開情報。 </span></span> <span>16. 関数の利点は何ですか? </span> <span>プログラムの保守性の向上、ソフトウェアの信頼性の向上、プログラムの再利用性の向上、プログラムの開発効率の向上</span> <span>17. 関数を定義するには?関数名は大文字と小文字を区別しますか? </span> <span>1) function キーワードを使用します。2) 関数の命名規則は変数と同じであり、数字ではなく文字またはアンダースコアで始まります。4) 関数名は宣言された関数または関数を使用できません。システムによって作成された名前。 </span> <span>18. 変数の可視性または変数のスコープとは何ですか? </span> <span>プログラム内の変数のスコープです。変数の可視性に従って、変数はローカル変数とグローバル変数に分類されます。 </span> <span>19. ローカル変数とグローバル変数とは何ですか?グローバル変数は関数内で直接呼び出すことができますか? </span> <span>ローカル変数は関数内で定義された変数であり、そのスコープはそれらが配置されている関数です。関数の外にローカル変数と同じ名前の変数がある場合、プログラムはそれらをまったく異なる 2 つの変数であると認識します。関数を終了すると、ローカル変数も同時にクリアされます。 グローバル変数は、すべての関数の外側で定義された変数です。そのスコープは php ファイル全体ですが、ユーザー定義関数の内部では使用できません。 ユーザー定義関数内でグローバル変数を使用する必要がある場合は、global キーワード宣言を使用する必要があります。 つまり、関数内の変数の前に golbal を追加すると、関数内でグローバル変数にアクセスでき、このグローバル変数を使用して操作を実行できるだけでなく、グローバル変数を再割り当てすることもできます。 グローバル変数は、$GLOBALS['var'] を使用して呼び出すこともできます。 </span> <span>20. グローバルキーワードの使い方は?事前定義されたグローバル変数配列 $GLOBALS を使用するにはどうすればよいですか? </span> <span>Global はグローバル変数の定義に使用されますが、このグローバル変数は Web サイト全体ではなく、include または require 内のすべてのファイルを含む現在のページに適用されます。 <br></span> <span>$GLOBALS 配列では、各変数は要素であり、キー名は変数名に対応し、値は変数の内容に対応します。 $GLOBALS はスーパーグローバル変数であるため、$GLOBALS はグローバル スコープ内に存在します。グローバルとは、ファイル内で global $db として宣言している限り、宣言の下でこの $db を参照できることを意味します。 <br></span> <span>21. 静的変数とは何ですか? </span> <span>関数内で定義された変数がその前にキーワード static を付けて宣言されている場合、その変数は静的変数です。 通常、関数呼び出しが終了すると、関数内の変数に格納されたデータがクリアされ、占有されていたメモリ空間が解放されます。静的変数を使用する場合、関数が初めて呼び出されたときに変数は初期化され、関数が再度呼び出されたときに変数は初期化されませんが、保存することができます。関数が最後に実行された後の値。静的変数は関数のすべての呼び出し間で共有されると言えます。 </span> <span>22. PHP で関数にパラメータを渡すにはどのような方法がありますか?両者の違いは何ですか? </span> <span>値渡しとアドレス渡し(または参照渡し) (1)値渡し:渡される変数は関数に渡される変数とは別の空間に格納されます。したがって、関数本体内の変数値を変更しても、元の変数値には影響しません。 (2) アドレスで渡す: & 記号を使用して、パラメータがアドレスで渡されることを示します。メインプログラム内の指定値や対象変数を関数に渡すのではなく、値や変数のメモリ格納ブロックアドレスを関数にインポートするため、関数本体内の変数とメインプログラム内の変数は同じになります。記憶は同じです。関数本体に加えられた変更は、関数本体の外側の変数の値に直接影響します。 </span> <span>23. 再帰関数とは何ですか?再帰呼び出しを行うにはどうすればよいですか? </span> <span>再帰関数は実際にはそれ自体を呼び出す関数ですが、次の 2 つの条件を満たす必要があります。1) それがそれ自体を呼び出すたびに、最終結果に近づく必要があります。2) 明確な再帰終了条件が存在する必要があります。死のサイクルを引き起こさない。 </span> <span>24. 関数が存在するかどうかを確認しますか? </span> <span> function_exists( string $function_name ) 存在する場合は true を返し、存在しない場合は false を返します。 </span> <span>25. func() と @func() の違いは何ですか? </span> <span>2 番目の関数呼び出しが失敗した場合、エラーは報告されませんが、最初の関数呼び出しではエラーが報告されます</span> <span>26. include() 関数と require() 関数の使用法と違いは何ですか? include_once() と require_once() についてはどうですか? </span> <span> include と require でエラーが発生した後のエラー レベルは異なります。 include_once() と require_once() は、ロードする前にインポートされているかどうかを判断する必要があります。 </span>27. prefix++とpost++の違いを教えてください。 <span> </span>接頭辞 ++ は、まず変数を 1 増やしてから、その値を元の変数に割り当てます。後置 ++ は、まず変数の現在の値を返し、次に変数の現在の値を 1 ずつ増やします。 <span>28. 文字列演算子「.」と算術演算子「+」の違いは何ですか? </span> <span> 「a」と「b」の間に「.」が使用されている場合、それはハイフンとみなされます。 2 つの間に + がある場合、PHP はそれを操作とみなします。 1) + 記号の両側の文字列が数字で構成されている場合、文字列は自動的に整数に変換されます。2) + 記号の両側の文字列が純粋な文字の場合、0 が出力されます。 + 記号の両側の文字列が数字で始まる場合は、文字列の先頭の数字を切り取って演算します。 </span> <span>29. 三項演算子とは何ですか? </span> <span> 1 つの式の結果に基づいて 2 つの式から選択します。 例: ($a==true) ? '良い':'悪い';</span> <span>30. 制御フローステートメントとは何ですか? </span> <span>1: 3 つのプログラム構造 シーケンシャル構造、分岐構造、ループ構造 2: 分岐: if/esle/esleif/ switch/case/default 3: switch 注: case 句の定数は整数または文字列にすることができます 型定数、または定数式を変数にすることはできません。 同じ switch 句内で、case の値を同じにすることはできません。そうでない場合は、case の最初に出現した値のみを取得できます。 4: while do...while do...while のループの後にはセミコロンが必要です。 while と do の違い...while 5: Break と continue の違い。 Break はループを終了できます。 continue は、break ほど強力ではありません。このループを終了して次のループに入ることができるだけです。 </span> <span>31. 配列の概念とは何ですか?インデックスに基づく 2 種類の配列とは何ですか?また、それらを区別する方法は何ですか?配列に値を代入する 2 つの方法は何ですか? </span> <span>配列とは、グループまたは一連の値を格納できる変数 (複合変数) です。インデックス配列 (インデックス値は 0 から始まる数値です) と連想配列 (インデックス値として文字列を使用します) とは何ですか。配列に値を割り当てるには 2 つの方法がありますか? 配列を宣言するには主に 2 つの方法があります。 1. array() 関数を使用して配列を宣言します。key=>value を使用してインデックスと値をそれぞれ定義することも、配列のインデックス添え字を定義せずに配列の要素値のみを指定することもできます。 2. array() 関数を呼び出さずに、配列要素に値を直接代入します。例: $arr[0] = 1; $arr[1] = 2; 特記事項: 配列の添え字が整数と同等の文字列値である場合 (ただし、0 で始めることはできません)、整数。 例: $array[3] と $array['3'] は同じ要素を参照しますが、$array['03'] は別の要素を参照します。</span> <span>32. 配列を走査するには? </span> <span>①forループ ②foreachループ 使い方は以下の通りです: foreach($arr as $key=>$value){} ③list eachとwhileを組み合わせてloopにします</span> <span>33. 配列を foeach するとき、ポインタはどのように指すのでしょうか? list()/each()/while() が配列をループするとき、ポインタはどのように指すのでしょうか? </span> <span> foreach の実行が開始されると、配列内のポインターは自動的に最初のユニットを指します。 foreach は配列自体ではなく、指定された配列のコピーを操作するためです。 配列を each() した後、配列ポインタは配列内の次のユニットに留まるか、配列の終わりに達すると最後のユニットに留まります。 each() を使用して配列を再度走査する場合は、reset() を使用する必要があります。reset() は、配列の内部ポインタを最初のユニットに巻き戻し、最初の配列ユニットの値を返します。 </span> <span>34. 配列の長さを計算する (または配列内のすべての要素の数を数える) 方法は?文字列の長さを取得するにはどうすればよいですか? </span> <span>count() -- 配列内の要素の数をカウントします。 count (配列名) または count (配列名, 1) を使用できます。2 番目のパラメーターがあり、それが数値 1 である場合、配列要素の数を再帰的にカウントすることを意味します。 2 番目のパラメーターが数値 0 の場合、パラメーターが 1 つだけある count() 関数と同等です。 sizeof() -- count() のエイリアス 文字列: strlen()、mb_strlen();</span> <span>35. 配列に関連する一般的な関数は何ですか? </span> <span> 1) count -- (sizeof alias) - 配列内のセルの数またはオブジェクト内の属性の数をカウントします。 例: int count (mixed $var [, int $mode]) $var は通常、配列です。タイプ、その他のタイプ すべてのユニットは 1 つだけです。 $mode のデフォルト値は 0 です。 1 は配列の再帰的なカウントをオンにします。 2) in_array (mixed $needle, array $haystack [, bool $strict]) — 配列に特定の値が存在するかどうかを確認します。 針が文字列の場合、比較では大文字と小文字が区別されます。 3 番目のパラメータ strict の値が TRUE の場合、in_array() 関数は針のタイプが干し草の山のものと同じかどうかもチェックします。 3) array_merge(array $array1 [, array $array2 [, array $... ]] ) は 1 つ以上の配列のセルをマージし、1 つの配列の値が前の配列に追加されます。結果の配列を返します。 特記事項: 入力配列に同じ文字列キー名がある場合、キー名の後の値で前の値が上書きされます。ただし、配列に数値キーが含まれている場合、後続の値は元の値を上書きせず、追加されます。 配列が 1 つだけ指定され、その配列が数値的にインデックス付けされている場合、キー名は継続的に再インデックス付けされます。 4) 配列と文字列間の変換 (1)explode ( string $separator , string $string [, int $limit ] ) 区切り文字を使用して文字列を区切ります。 (2)implode ( string $glue , array $arr ) は、コネクタを使用して配列内の各ユニットを文字列に接続します。 join は implode のエイリアスです。 5) sort(array &$array [, int $sort_flags]) — この関数が終了すると、配列のセルが最小値から最大値まで並べ替えられます。 </span> <span>36. 配列結合関数 array_merge() と配列加算演算 $arr + $arr2 の違いは何ですか? </span> <span>array_merge() -> array_merge() を使用します。配列のキー名が同じ場合、数値インデックス配列のマージの場合は、後者の値が前者の値を上書きします。上書きされませんが、後者は前者の後ろに追加されます。 "+"->配列の加算演算を使用します。 array_merge() とは異なり、加算演算は、連想配列であっても数値インデックス配列であっても、同じキー名の値のみを破棄します。キー名が最初に出現する要素は保持され、同じキー名を持つ後続の要素は追加されません。 </span> <span>37. 文字列を定義するときの一重引用符と二重引用符の違いは何ですか? </span> <span>” ” 二重引用符内のフィールドはコンパイラーによって解釈され、HTML コードとして出力されます。 <br>‘ ‘ 一重引用符内の単語は解釈されず、直接出力されます。 <br></span> <span>38. echo()、print()、print_r()の違いは何ですか? </span> <span>(1)ech​​o は構文です。1 つ以上の文字列を出力します。戻り値はありません。(2)print は関数です。配列とオブジェクトは出力できません。文字列を出力します。print は戻り値を持ちます。(3)print_r は関数です。 、配列を出力できます。 print_r は興味深い関数です。文字列、int、float、配列、オブジェクトなどを出力できます。配列を出力する場合、出力が成功すると print_r は true を返し、print_r に print_r($ を渡すことができます)。 str,true) なので、print_r print_r で処理した値を出力せずに返します。なお、echoとprintはprintより効率が良いため、基本的にはechoを使用します。 </span> <span>================================================ === ============================================== =</span> <span>39. 文字列処理関数を機能別に分類すると何ですか?これらの機能は何をするのでしょうか? </span> <span>A. 文字列出力関数 (1)ech​​o $a,$b,$c...; は言語構造であり、実際の関数ではありません。 (2)print($a) この関数は文字列を出力します。成功した場合は 1、失敗した場合は 0 を返します (3)print_r($a) (4)var_dump($a); 型、長さ、値を出力できます B. 文字列の先頭と末尾のスペースを削除する関数:rim ltrim rtrim (エイリアス: Chop ) 2 番目のパラメータを使用すると、指定した文字を削除することもできます。 C. 文字列のエスケープ関数:addslashes() D. 文字列長の取得関数: strlen() E. 文字列長のインターセプト関数: substr() F. 文字列の取得関数: strstr()、strpos() G. 文字列の置換関数: str_replace( )</span> <span>40. 次の質問に正しく答えてください。 </span> <span> 1).$arr = array('james', 'tom', 'symfony'); $arr 配列の値を ',' で分割し、出力用の文字列にマージしてください。 echo implode(‘,’,$arr); 2).$str = ‘jack,james,tom,symfony’; $str を ‘,’ で分割し、分割した値を $arr 配列に入れてください。 $arr =explode(',',$str); 3).$arr = array(3,7,2,1,'d','abc'); $arr を大きいものから小さいものまでソートしてください。主要な値は変更されていませんか? arsort($arr); print_r($arr); 4).$mail = “gaofei@163.com”; このメールボックス (163.com) のドメインを取り出して、いくつのメソッドを記述できるかを確認してください。 ? echo strstr($mail,'163'); echo substr($mail,7); $arr =explode("@",$mail); 文字列がある場合は、文字列は「123、234、345」です。この文字列の最後のカンマを切り取るにはどうすればよいですか? 6) 乱数を取得する関数は何ですか? mt_rand() と rand() ではどちらの実行速度が速いでしょうか? </span> <span>41. ページの文字化けを解決するにはどうすればよいですか?</span> <span>1. まず、現在のファイルに文字セットが設定されているかどうかを検討します。 meta タグに charset が記述されているかどうかを確認します。PHP ページの場合は、header() 関数で charset が指定されているかどうかも確認できます。 例: <meta http-equiv="Content-Type" content= text/html ; charset=utf-8" /> header("content-type:text/html;charset=utf-8"); 2. 文字セット (つまり、charset) が設定されている場合は、保存されている現在のファイルのエンコード形式 ページに設定されている文字セットと一致しているかどうか、この 2 つは統一する必要があります。 3. データベースからデータを抽出する必要がある場合は、データベースにクエリを実行するときの文字セットが一致しているかどうかを判断します。現在のページに設定されている文字セット、たとえば :mysql_query("set names utf8") のように、2 つを統合する必要があります。 </span> <span>42. 正規表現とは何ですか? PHP の正規表現に関連してよく使用される関数は何ですか?電子メール、中国の携帯電話番号、固定電話番号の正規表現を書いてください。 </span> <span>正規表現は、文字の配置パターンを記述するために使用される文法規則です。正規表現はパターン式とも呼ばれます。 Web サイト開発では、フォーム送信情報の前にクライアント側での検証に正規表現が最も一般的に使用されます。 たとえば、ユーザー名が正しく入力されているか、パスワードの入力が要件を満たしているか、電子メールや携帯電話番号などの情報の入力が合法であるかどうかを検証します。 PHP では、正規表現は主に文字列の分割、一致、検索、置換の操作に使用されます。 preg シリーズの関数で対応できます。具体的な文字列は次のとおりです。 string preg_quote ( string str [, string delimiter] ) 正規表現の特殊文字は次のとおりです。 :。 preg_replace -- 正規表現検索を実行し、混合 preg_replace (混合パターン、混合置換、混合主語 [, int limit] ) を置換します。 preg_replace_callback -- コールバック関数を使用して正規表現検索を実行し、混合 preg_replace_callback (混合パターン、コールバック コールバック、混合主語) を置換します。 [, int limit] ) preg_split - 正規表現を使用して文字列配列を分割します preg_split ( string pattern, string subject [, int limit [, int flags]] ) </span> <span>43. 文字列内のすべての HTML タグをフィルターで除外する場合は、どの関数を使用する必要がありますか? </span> <span>strip_tags関数を使っているようです<br></span> ​ <span><span>44. preg_rep</span>lace() と str_ireplace() の使用の違いは何ですか? preg_split() 関数と split() 関数の使用方法は? </span> <span><span><strong>str_replace: </strong>これは文字列置換に推奨される方法ですが、最も一致させたい要素が最初に配置されることに注意してください。 <br><strong>strtr: </strong>strtr は、短い文字列を置換する場合にも非常に効率的ですが、検索配列の添字の長さの違いも効率に大きな影響を与えます。また、strtr(string, string, string) は使用しないことをお勧めします。 )(半角文字以外は文字化けしやすい)。 <br><strong>preg_replace: </strong>言うまでもなく、通常のマッチングを使用できます。これは間違いなく最も強力な機能ですが、効率をある程度犠牲にする必要もあります。 </span><br></span> <span>45. 現在のタイムスタンプを取得する主な関数は何ですか? PHP を使用して、今日の時刻を 2010-12-10 22:21:21 の形式で出力しますか? PHP を使用して、前日の時刻を 2010-12-10 22:21:21 の形式で出力しますか? 2010-12-25 10:30:25 を UNIX タイムスタンプに変換するにはどうすればよいですか? </span> <span>echo date ("Y-m-d H:i:s" ,strtotime('-1,days')); $unix_time = strtotime("2009-9-); 2 10:30:25");//UNIX タイムスタンプに変更します echo date("Y-m-d H:i:s",$unix_time);// 通常の時刻形式にフォーマットします</span> <span>46. get を使用して URL の値を渡す場合、中国語の文字が文字化けして表示される場合、どの関数を使用して中国語の文字をエンコードする必要がありますか? ユーザーが Web サイトのフォームにデータを送信する場合、スクリプト攻撃 (ユーザーが <script>alert (111); </script> を入力するなど) を防ぐために、データを受信したときに PHP 側でデータをどのように処理する必要がありますか? </span> <span>中国語をエンコードするには urlencode() を使用し、デコードするには urldecode() を使用します。 htmlspecialchars($_POST[‘title’]) を使用してフォームパラメーターをフィルターし、スクリプト攻撃を回避します。 </span> <span>47. データベースに接続する手順は何ですか?各ステップの戻り値のデータ型は何ですか?特に、mysql_query() はどのようなデータ型を返しますか? </span> ​ <p> <span><span>$conn=mysql_pconnect("localhost","root","123456");//接続を開く <br>mysql_select_db("database name",$conn);//指定されたデータベースに接続する <br>mysql_query("set names utf8 ");//文字エンコーディングを設定します<br>$sql="";<br>$R=mysql_query($sql);//SQL文を実行して結果セットを返します<br>while($v=mysql_fetch_array($R)) {<br>echo "フィールド名".$v['title'];<br></span>}</span></p> <span>mysql_query() クエリなどのステートメントがある場合はリソースを返し、追加、削除、変更などのステートメントがある場合は true を返します。または偽。 </span> ​ <span>48. mysql_fetch_row()、mysql_fetch_assoc()、mysql_fetch_array の違いは何ですか? </span> <span>最初のものは結果セット内の行をインデックス配列として返し、2 つ目は連想配列を返し、3 つ目は 2 番目のパラメータに応じてインデックス配列または連想配列を返すことができます。 MYSQL_BOTH MYSQL_NUM MYSQL_ASSOC のデフォルトは MYSQL_BOTH $sql = "select * from table1"; $result = mysql_query($sql);</span> <span>49. これまで学習したリソースを返す関数を教えてください。 </span> <span>答え: mysql_connect(); mysql_query(); 選択が成功した場合のみ、リソースは FALSE を返します fopen();</span> <span>少し</span> <span>51. ファイルをアップロードする際に注意すべき点は何ですか?指定したディレクトリにファイルを保存するにはどうすればよいですか?重複した名前のファイルをアップロードする問題を回避するにはどうすればよいですか? </span> <span>1. まず、php.ini でファイルのアップロードを有効にする必要があります。2. php.ini にはアップロードできる最大値があり、デフォルトは 2MB です。必要に応じて変更できます。 3. フォームをアップロードするときは、必ず enctype="multipart/form-data" を form タグに記述してください。 5. フォームを type= に設定します。 file" Control; 6. アップロードしたファイルのサイズ MAX_FILE_SIZE、ファイルの種類が要件を満たしているか、アップロード後に保存されるパスが存在するかに注意してください。 アップロードされたファイル名からファイル接尾辞を取得し、タイムスタンプとファイル接尾辞を使用してファイルの名前を変更すると、名前の重複を避けることができます。 アップロードしたファイルの保存ディレクトリを自分で設定し、それをファイル名と組み合わせてファイル パスを形成し、指定したディレクトリにファイルを保存できます。 </span> <span>52. $_FILES は何次元ですか? 1 番目と 2 番目の次元のインデックス添字は何ですか?ファイルを一括でアップロードする際に注意すべき点は何ですか? </span> <span> 二次元配列。最初の次元はアップロード コントロールの名前で、2 次元の添字は name/type/tmp_name/size/error です。</span> <span>53. header() 関数の主な機能は何ですか?使用時に注意すべき点は何ですか? </span> <span> header 関数を使用してページに移動します。 header('Location:'.$url); use header で content-type を宣言します。 header('content-type:text/HTML;charset=utf-8');応答を返すヘッダー ステータス コード、例: header('HTTP/1.1 404 Not Found'); ヘッダーを使用して、一定時間後にジャンプを実行します。 )、$delay ジャンプ時間を延期します。$url は、ブラウザのキャッシュを制御するためにヘッダーを使用します。header('HTTP/1.1 401 Unauthorized')、header('WWW) -Authenticate: Basic realm="Top Secret"'); ダウンロード操作にヘッダーを使用します。</span> <span>54. ファイルをダウンロードするときに header() 関数を使用するにはどうすればよいですか?</span> <span>header("content-type: application/octet-stream;charset=UTF-8"); // ここで utf-8 を追加することと、上で定義することの違いは何ですか? </span> <span> header("accept-ranges: bytes"); header("accept-length: ".filesize($filedir.$filename)); header("content-disposition:attachment; filename=".$filedir.$filename); ;</span> <span>55. アヤックスとは何ですか? ajaxの原理は何ですか? ajaxのコアテクノロジーとは何ですか? ajaxの長所と短所は何ですか? </span> <span>ajax は、asynchronous javascript and xml の略語で、javascript、xml、css、DOM などのテクノロジーを組み合わせたものです。 「$」は jQuery のエイリアスです。ページ内のユーザーのリクエストは、ajax エンジンを通じて非同期にサーバーと通信します。最後に、ajax エンジンは、返されたデータをページに表示することを決定します。場所を指定します。 Ajax では、ついに、別のページのすべての出力コンテンツを 1 つのページ上の指定された場所にロードできるようになりました。 このようにして、静的ページもデータベースから返されたデータ情報を取得できます。したがって、ajax テクノロジーを使用すると、ページ全体を更新せずに静的 Web ページがサーバーと通信できるようになり、ユーザーの待ち時間が短縮され、ネットワーク トラフィックが削減され、顧客エクスペリエンスの使いやすさが向上します。 Ajax の利点は次のとおりです。 1. サーバーの負担を軽減し、これまでサーバーが負担していた作業の一部をクライアントに転送し、クライアントのアイドル リソースを処理に使用します。 2. 部分的な更新のみでページを更新します。ページの応答速度により、ユーザー エクスペリエンスがよりフレンドリーになります。 Ajax の欠点は、検索エンジンが Ajax によって要求されたコンテンツに直接アクセスできないため、SEO の促進や最適化に役立たないことです。 ajax のコアテクノロジーは XMLHttpRequest であり、これは JavaScript のオブジェクトです。 </span> <span>56. jQueryとは何ですか? jquery で ajax を簡素化するにはどのような方法がありますか? </span> <span>jQuery は Javascript のフレームワークです。 $.get()、$.post()、$.ajax()。 $ は jQuery オブジェクトのエイリアスです。 </span> <span> コードは次のとおりです: $.post(非同期アクセス用の URL アドレス, {'パラメータ名' : パラメータ値}, function(msg){ $("#result").html(msg); }); get(非同期 アクセスしたURLアドレス, {'パラメータ名':パラメータ値}, function(msg){ $("#result").html(msg); }); $.ajax({ type: "post", url :loadUrl 、cache:false、データ: "パラメーター名 = " + パラメーター値、成功: function(msg) { $("#result").html(msg) });</span> <span>57. セッション制御とは何ですか? </span> <span>簡単に言えば、セッション制御はユーザー情報を追跡および識別するためのメカニズムです。セッション制御の考え方は、Web サイト内の変数を追跡することで、システムがこのユーザー情報に基づいて対応するユーザー情報を識別し、ユーザーの権限を表示できるようにすることです。ユーザーの対応する権限に適したページコンテンツ。 現在、最も重要なセッション追跡方法には、Cookie とセッションが含まれます。 </span> <span>58. セッション追跡の基本手順</span> <span>1).現在のリクエストに関連するセッション オブジェクトにアクセスします 2)。セッションに関連する情報を検索します 3)。セッション情報を保存します 4)。セッションデータを破棄します</span> <span>59. Cookieを使用する際の注意点は何ですか? </span> <span>1) setcookie() の前にページ出力を行うことはできません。スペースや空白行も許可されません。2) setcookie() の後に、現在のページで $_COOKIE['cookiename'] を呼び出しても出力はありません。更新する必要があります。Cookie の値は次のページでのみ表示されます。3) ブラウザーによって Cookie の処理方法が異なります。また、ブラウザーは最大 300 個の Cookie を作成できます。各 Cookie は 4kb を超えることはできず、各 Web サイトで設定できる Cookie の総数は 20 を超えることはできません。 4) Cookie はクライアント側に保存されます。ユーザーが Cookie を無効にすると、setcookie は機能しなくなります。したがって、Cookie にあまり依存しないでください。 </span> <span>60. セッションを使用する場合、現在のユーザーを他のユーザーと区別するために何を使用しますか? </span> <span>sessionid、現在の session_id は session_id() 関数を通じて取得できます。 </span> <span>61. セッションとクッキーを使用する手順は何ですか?セッションとCookieのライフサイクルは何ですか?セッションとクッキーの違いは何ですか? </span> <span>有効期限が設定されていない Cookie の場合、Cookie の値はクライアント マシンのメモリに保存され、ブラウザが閉じられている限り、Cookie は自動的に消去されます。 Cookie の有効期限が設定されている場合、ブラウザは Cookie をテキスト ファイルの形式でハード ディスクに保存し、ブラウザを再度開いたときも Cookie の値は有効です。セッションは、ユーザーがサーバー側に保存する必要がある情報を保存します。各ユーザーのセッション情報は、キーと値のペアのようにサーバー側に保存されます。キーはセッション ID、値はユーザーが保存する必要がある情報です。サーバーは、保存されたセッション情報がどのユーザーに属しているかを識別するために sessionid を使用します。 2 つの最大の違いは、セッションがサーバー側に保存されるのに対し、Cookie はクライアント側に保存されることです。セッションのセキュリティは高くなりますが、Cookie のセキュリティは弱いです。セッションは Web 開発において非常に重要な役割を果たします。ユーザーがこの ID を使用して Web サイトの管理バックエンドにアクセスすると、ユーザーの正しいログイン情報をサーバーのメモリに記録でき、再度ログインすることなく ID 確認を取得できます。正しくログインしていないユーザーにはセッションスペースが割り当てられず、管理背景のアクセスアドレスを入力してもページの内容を閲覧することができません。ページに対するユーザーの操作権限はセッションを通じて決定されます。 </span> <span>セッションを使用する手順: 1. セッションを開始: session_start() 関数を使用して開始します。 2. セッションを登録します。 $_SESSION 配列に要素を直接追加するだけです。 3. セッションを使用する: セッションが空であるか、すでに登録されている場合は、通常の配列と同様に使用します。 4. セッションを削除します。 1. unset を使用して単一のセッションを削除できます。 2. $_SESSION=array() を使用してすべてのセッション変数を一度にログアウトします。 3. session_destroy() 関数を使用してセッションを完全に破棄します。 Cookieはどのように使用されますか? 1. ユーザーが訪問した情報の一部を記録します。 2. ページ間で変数を渡します。 3. 閲覧したインターネット ページを Cookie 一時フォルダーに保存します。これにより、将来の閲覧速度が向上します。 Cookie を作成します: setcookie(string cookiename, string value, int期限切れ); Cookie を読み取る: スーパー グローバル配列 $_COOKIE を介してブラウザ側で Cookie の値を読み取ります。 Cookie の削除: 2 つの方法があります。 1. 手動削除方法: ブラウザのプロパティを右クリックすると、[Cookie の削除] が表示され、すべての Cookie ファイルを削除する操作を実行します。 2.setcookie() メソッド: Cookie を設定するメソッドと同じですが、今回は Cookie の値が空に設定され、有効時間が 0 以下の現在のタイムスタンプになります。 </span> <span>================================================ === ============================================== =</span> <span>62. Cookie の名前をユーザー名、値を jack に設定し、Cookie を 1 週間後に期限切れにする方法は? ブラウザは最大でいくつの Cookie を生成できますか?各 Cookie ファイルの最大サイズはどれくらいですか? </span> <span>setcookie('username','jack',time()+7*24*3600); 最大 20 個の Cookie を生成できます。それぞれのクッキーは 4K を超えることはできません</span> <span>63. セッションを設定または読み取る前に何をする必要がありますか? </span> <span>php.ini で session.auto_start = 1 を直接有効にするか、ページの先頭で session_start() を使用してセッションを開くことができます。session_start() の前に空白行を含む出力があってはなりません。 </span> <span>64. 実際の開発では、セッションはどこで使用されますか? </span> <span>セッションは、ユーザーのログイン情報を保存し、ページ間で値を転送するために使用されます。 1) 一般に、ユーザーが正常にログインした後にユーザーのログイン情報をセッションに割り当てるために使用されます。2) 検証コード イメージを生成し、ランダム コードの生成後にセッションに値を割り当てるために使用されます。 </span> <span>65. セッションからログアウトする方法は何通りありますか? </span> <span>unset() $_SESSION=array();</span> <span>66. OOP とは何ですか?クラス属性とは何ですか? </span> <span>OOP (オブジェクト指向プログラミング) はオブジェクト指向プログラミングであり、2 つの最も重要な概念はクラスとオブジェクトです。属性とメソッドの集合がクラスを形成します。クラスはオブジェクト指向プログラミングの核であり、特定の機能を実装するために使用される散在するコードが効率的に管理されます。 クラスは特定の機能と属性を備えた単なる抽象モデルですが、実際のアプリケーションではエンティティを 1 つずつ必要とします。つまり、クラスをインスタンス化した後、クラスはオブジェクトになります。クラスはオブジェクトの抽象概念であり、オブジェクトはクラスのインスタンス化です。 OOP には 3 つの主要な特徴があります。1. カプセル化 (隠蔽とも呼ばれます)、2. 継承、3. ポリモーフィズム。 OOP の利点: 1. コードの再利用性が高い (コードの節約) 2. プログラムの保守性が高い (拡張性) 3. 柔軟性</span> <span>67. プロパティの一般的に使用されるアクセス修飾子は何ですか?どういう意味でしょうか? </span> <span>プライベート、保護、パブリック。 クラス外: public、var サブクラス内: public、protected、var このクラス内: private、protected、public、var これら 3 つのキーワードを使用しない場合は、var キーワードも使用できます。ただし、var を権限修飾子と一緒に使用することはできません。 var で定義された変数はサブクラス内でアクセスできますが、クラスの外からもアクセスできます。これは public と同等です。 クラスの前に追加できるのは、final と abstract のみです。 アクセス修飾子 ( が必要です) private、protected、public、var) 、メソッドの前: static、final、private、protected、public、abstract</span> <span>68. $this、self、parent の 3 つのキーワードはそれぞれ何を表しますか?どのような状況で使用されますか? </span> <span>$this は現在のオブジェクト、self は現在のクラス、parent は現在のクラスの親クラス、$this は現在のクラスで使用され、プロパティとメソッドを呼び出すには -> を使用します。 self も現在のクラスで使用されていますが、:: を使用して呼び出す必要があります。親はクラスで使用されます。 </span> <span>69. クラス内で定数を定義する方法、クラス内で定数を呼び出す方法、およびクラス外で定数を呼び出す方法。 </span> <span>クラス内の定数もメンバー定数です。定数は変化しない量であり、一定の値です。 定数を定義するには、キーワード const を使用します。例: const PI = 3.1415326; クラス内でも、クラス外でも、定数へのアクセスの形式はクラスです。名前と呼び出し対象の演算子記号 (二重コロン)。つまり、クラス名 :: クラス定数名 </span>; <span>70. スコープ演算子::使用方法?どのような状況で使用されますか? </span> <span>クラス定数を呼び出し、静的メソッドを呼び出します。 </span> <span>71. 魔法のメソッドとは何ですか?よく使われる魔法の方法にはどのようなものがありますか? </span> <span> __ で始まるシステムカスタマイズされたメソッド。 __construct() __destruct() __autoload() __call() __tostring()</span> <span>72. コンストラクターとデストラクターとは何ですか? </span> <span>コンストラクターメソッドは、オブジェクトをインスタンス化するときに自動的に実行されるメンバーメソッドです。その機能はオブジェクトを初期化することです。 php5 より前では、クラスと同じ名前のメソッドがコンストラクター メソッドでした。php5 以降では、マジック メソッド __construct() がコンストラクター メソッドになりました。 クラスにコンストラクターが定義されていない場合、PHP は自動的にコンストラクターを生成します。この自動生成されたコンストラクターにはパラメーターも操作もありません。デストラクタ メソッドの役割は構築メソッドとはまったく逆で、オブジェクトが破棄されるときに自動的に呼び出され、メモリを解放することがその役割です。 デストラクター メソッドは次のように定義されます: __destruct(); PHP には、使用されなくなったオブジェクトを自動的にクリアしてメモリを解放できるガベージ コレクション メカニズムがあるため、通常、デストラクター メソッドを手動で作成する必要はありません。 </span> <span>73. __autoload() メソッドはどのように機能しますか? </span> <span>このマジック関数を使用するための基本的な条件は、クラスファイルのファイル名がクラスの名前と一致している必要があることです。 プログラムを実行して特定のクラスをインスタンス化するときに、インスタンス化前にクラス ファイルが導入されていない場合、__autoload() 関数が自動的に実行されます。 この関数は、インスタンス化されたクラスの名前に基づいて、このクラス ファイルのパスを検索し、このクラス ファイルのパスにこのクラス ファイルが存在すると判断した場合、クラスをロードするか include を実行します。このパスが存在しない場合、プログラムは実行を続けます。エラーが表示されます。 自動ロード マジック関数を使用すると、多くの include 関数や require 関数を記述する必要がなくなります。 </span> <span>74. 抽象クラスとインターフェイスとは何ですか?抽象クラスとインターフェイスの違いと類似点は何ですか? </span> <span>抽象クラスはインスタンス化できず、他のクラスの親クラスとしてのみ使用できるクラスです。 抽象クラスは、キーワード abstract を使用して宣言されます。 抽象クラスは、メンバ変数とメンバ メソッドを含むという点で通常のクラスと似ています。この 2 つの違いは、抽象クラスにはメソッド本体が少なくとも 1 つ含まれている必要があり、このメソッドは本質的にメソッド本体を持たないことです。サブクラスによってオーバーライドされます。 抽象メソッドの形式は次のとおりです: abstract function abstractMethod(); PHP は単一継承のみをサポートするため、複数の継承を実装する場合はインターフェイスを使用する必要があります。つまり、サブクラスは複数のインターフェイスを実装できます。 インターフェイスは、interface キーワードによって宣言されます。インターフェイス内のメソッドには public キーワードを記述する必要はありません。また、インターフェイス内のメソッドにはメソッド本体がありません。インターフェイス内のメソッドも、本質的にはサブクラスによって実装されることを目的としています。 抽象クラスとインターフェイスによって実装される関数は非常に似ています。最大の違いは、インターフェイスが多重継承を実装できることです。アプリケーション内の抽象クラスとインターフェイスのどちらを選択するかは、特定の実装によって異なります。 サブクラスはextendsを使用して抽象クラスを継承し、サブクラスはimplementsを使用してインターフェイスを実装します。 抽象クラスには少なくとも 1 つの抽象メソッドがありますか?回答: クラスが抽象クラスとして宣言されている場合、クラス内に抽象メソッドがある場合、そのクラスは抽象クラスである必要があります</span>。 <span>75. __call にはパラメータがいくつありますか?その種類と意味は何ですか? </span> <span> マジック メソッド __call() の機能は、プログラムが存在しない、または非表示のメンバー メソッドを呼び出すときに、PHP が最初に __call() メソッドを呼び出し、存在しないメソッドのメソッド名とパラメーターを保存することです。 __call() には 2 つのパラメーターが含まれます。最初のパラメーターは存在しないメソッドのメソッド名 (文字列型)、2 番目のパラメーターは存在しないメソッドのすべてのパラメーター (配列型) です。 __call() メソッドはデバッグに特化しており、エラーを見つけることができると思います。同時に、メソッドが存在しない場合は例外をキャッチすることができ、他の代替メソッドが実行されます。 </span> <span>76. Smarty テンプレート技術の用途は何ですか? </span> <span> php と html を分離することで、アーティストとプログラマーは互いに干渉することなくそれぞれの業務を実行できます。 </span> <span>77.smarty の主な構成は何ですか? </span> <span>1.smarty.class.php を導入します。2.smarty オブジェクトをインスタンス化します。3.デフォルトのコンパイル済みファイルのパスを再変更します。6.デフォルトのキャッシュ パスを再変更します。 7. キャッシュを有効にするかどうかを設定できます。 8. 左右の区切り文字を設定できます。 </span> <span>78. Smarty を使用する際に注意する必要がある点は何ですか? </span> ​ <span>Smarty は MVC の概念に基づいたテンプレート エンジンで、ページ プログラムを 2 つの部分 (ビュー層とコントロール層) に分割します。つまり、Smarty テクノロジーはユーザー UI を PHP コードから分離します。 このようにして、プログラマーとアーティストは、互いに干渉することなくそれぞれの業務を実行します。 Smarty を使用する場合は、次の問題に注意する必要があります。 1. Smarty を正しく設定します。主に、smarty オブジェクトをインスタンス化し、smarty テンプレート ファイルのパスを設定する必要があります。 2. assign 割り当てと表示を使用して、PHP ページにページを表示します。 3. Smarty テンプレート ファイルでは PHP コード スニペットは許可されません。すべてのコメント、変数、関数は区切り文字内に含める必要があります。A.{} B. foreach C. if else D. include E. リテラル</span> <span>79. MVCの概念とは何ですか?各レベルの主なタスクは何ですか? </span> <span>MVC (Model-View-Controller) は、ソフトウェア設計パターンまたはプログラミングのアイデアです。 M はモデル層、V はビュー層 (表示層またはユーザー インターフェイス)、C はコントローラー層を指します。 mvc を使用する目的は、M と V を分離して、1 つのプログラムで異なるユーザー インターフェイスを簡単に使用できるようにすることです。 Web サイトの開発では、通常、モデル層はデータベース テーブル情報の追加、削除、変更、確認を担当します。ビュー層は、M と V の間の制御の役割を果たします。コントローラー層は、どちらを決定するかを決定します。どのモデルクラスを呼び出すかのメソッド。実行完了後、コントローラー層が結果をどのビュー層に割り当てるかを決定します。 </span> <span>わずかに</span> <span>81. Java 言語におけるメソッドの書き換えとオーバーロードとは何ですか?正確に言うと、PHP はメソッドのオーバーロードをサポートしていますか?多くの参考書で言及されている PHP のオーバーロードを実際に正しく理解するにはどうすればよいでしょうか? </span> <span>PHP はメソッドのオーバーロードをサポートしていません。多くの本で言及されている PHP の「オーバーロード」は「書き換え」である必要があります</span> <span>82. 最後のキーワードはクラスのメンバー属性を定義できますか? </span> <span>いいえ、クラスのメンバー属性は、public、private、protected、var によってのみ定義できます</span> <span>83. Final キーワードで定義されたクラスは継承できますか? </span> <span>finalで定義されたクラスは継承できません</span> <span>84. 静的キーワードの使用例について教えてください。静的は授業前に使用できますか? static は public、protected、private と併用できますか?コンストラクターを静的にすることはできますか? </span> <span>static は属性およびメソッドの前で使用できます。静的な属性またはメソッドを呼び出す場合、インスタンス化せずにクラスがロードされている限り、static をクラスの前で使用することはできません。 static は、メソッドの前で public、protected、private と一緒に使用できます。コンストラクターを static にすることはできません。 </span>85. インターフェースはインスタンス化できますか?抽象クラスはインスタンス化できますか? <span> </span>答え: インターフェースも抽象クラスもインスタンス化できません<span> </span>86. クラスの前にアクセス修飾子を追加できますか?追加できる場合、どのアクセス修飾子を追加できますか?権限アクセス修飾子は public、protected、private でしょうか? <span> </span>final と static はクラスの前に追加できますが、public、protected、private はクラスの前に追加できません<span> </span>87. クラス内の属性の前にアクセス修飾子を含めることはできませんか?メンバー変数の前の修飾子は、public、protected、または private のみにすることができますか?他にどれが考えられますか? <span> </span>クラス内の属性は修飾子を使用して追加する必要があります。これらの 3 つに加えて、var<span> を追加することもできます。 </span>88. 配列をエコーすると、ページは何を出力しますか?オブジェクトをエコーする場合はどうでしょうか?配列やオブジェクトを出力する場合はどうすればよいでしょうか? <span> </span> ページは「配列」のみを出力できます。オブジェクトをエコーするとエラー メッセージが表示されます。配列を印刷する場合、「Array」のみが出力されます。 オブジェクトを印刷する場合、エラー メッセージが表示されます。 print と echo は同じです。 <span>89. __tostring() マジックメソッドはいつ自動的に実行されますか? __tostring() マジック メソッドは戻り値を返す必要がありますか? </span> <span>オブジェクトがエコーまたは印刷されると、自動的にトリガーされます。そして __tostring() は値を返さなければなりません</span> <span>90. 抽象メソッドとは何ですか? </span> <span>メソッドの前にabstractがあり、メソッドにはメソッド本体がなく、「{ }」さえありません</span> <span>91. クラス内のメソッドが抽象メソッドであっても、そのクラスが抽象クラスとして定義されていない場合、エラーが報告されますか? </span> <span>はい、「致命的なエラー: クラス t2 には 1 つの抽象メソッドが含まれているため、抽象として宣言するか、残りのメソッド (t2::ee) を実装する必要があります」</span> <span>92. クラスが抽象クラスで、クラス内のメソッドが非抽象メソッドの場合、エラーが報告されますか? </span> <span>いいえ、クラスが抽象クラスの場合、抽象メソッドを持つ必要はありませんが、クラス内に抽象メソッドであるメソッドがある場合、このクラスは抽象クラスである必要があります</span> <span>93.少し</span> <span>94. 最後のキーワードを適用する際に注意すべき点は何ですか? </span> <span>final キーワードを使用して定義されたクラスは継承が禁止されています。 Final キーワードを使用して定義されたメソッドはオーバーライドできません。 </span> <span>95. クラスが親クラスを継承して複数のインターフェースを実装したい場合、どのように記述すればよいでしょうか? </span> <span>次のような記述形式: class MaleHuman extends Humanimplements Animal,Life { ... }</span> <span>================================================ === ============================================== =</span> <span>96. 単一エントリポイントとは何ですか? </span> <span>いわゆる単一エントリ ポイントとは、アプリケーション全体の入口が 1 つだけあり、すべての実装がこの入口を通じて転送されることを意味します。たとえば、上記では、プログラムの単一エントリ ポイントとして、index.php を使用しています。もちろん、これはあなたが制御できます。 単一のエントリ ポイントにはいくつかの利点があります。 まず、システムによってグローバルに処理される一部の変数、クラス、およびメソッドをここで処理できます。たとえば、データの事前フィルタリングを実行する必要があり、セッション処理をシミュレートする必要があり、いくつかのグローバル変数を定義する必要があり、さらにいくつかのオブジェクトまたは変数をレジスタに登録する必要もあります。次に、プログラムの構造がより明確になります。</span> <span>97. PHP には 2 つの正規表現関数ライブラリが用意されていますが、どれですか? </span> <span>(1) PCRE Perl 互換の正規表現: preg_ は接頭辞です。 (2) POSIX ポータブル オペレーティング システム インターフェイス: ereg_ は接頭辞です</span> <span>98. 正規表現の構成は何ですか? </span> <span>アトム (英語の文字などの通常の文字)、メタキャラクター (特別な機能を持つ文字)、およびパターン修正文字で構成され、正規表現には少なくとも 1 つのアトムが含まれます</span> <span>99. 珍しい魔法の方法の発動時間は何ですか? </span> <span>__isset() __unset()のトリガータイミング オブジェクトのシリアル化時に__sleep()と__wakeup()が呼び出されます。 オブジェクトのシリアル化時に__sleep()メソッドが記述されていない場合、すべてのメンバー属性がシリアル化され、__sleepが呼び出されます。 () メソッドが定義されている場合、指定された配列内の変数のみがシリアル化されます。</span>
関連ラベル:
ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
最新の問題
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート