PHP で大規模な Web サイトを作成するための問題集

WBOY
リリース: 2016-06-13 12:16:20
オリジナル
866 人が閲覧しました

PHPはその使いやすさから急速に普及していますが、使いやすいということは使いこなせるということではなく、実際にWEBアプリケーションシステムを簡単に構築するために多くのプログラマが利用していますが、それをよく検討している人はどれくらいいるでしょうか。コードは保守が容易で、十分に堅牢で、十分に効率的で、十分に安全であるため、これらは PHP を使用して大規模な Web サイトを構築する場合に重要な要素になります。より小さな問題から始めて、いくつかの致命的な間違いに移りましょう。 3 つの部分に分かれています。
パート 1、マイナーエラー

1. Printf()、
この関数は主にデータのフォーマットと表示に使用されます。特定のデータの表示形式を変更したい場合にのみ使用してください。
たとえば、PI (3.1415926) の値をさまざまな精度で表示します。

コードをコピー コードは次のとおりです:


/*
* この 3 つΠ
*/

printf ("Pi は %.2fn
n", M_PI) ;
printf ("Pi は %.4fn
n です); ", M_PI);
?>

しかし、多くのプログラマは、いくつかの変数値と関数を表示したいだけであり、戻り値にはこの関数を使用します。 Printf() はデータを表示する前にフォーマットするため、速度が遅いため、データを表示する場合にのみ print と echo を使用して高速化します。

2. セマンティック チェック
PHP は弱い型指定の言語であるため、使用する前に変数を定義する必要がありません。これにより、プログラミングに大きな利便性と柔軟性がもたらされますが、それを自分で理解する必要があります。変数はどのような型にすべきでしょうか? 変数は実際には実行時に特定の型に対応しており (さまざまな型は相互に自由に変換できます)、型のない変数は存在しません。 PHP がセマンティック エラーを検出できない可能性もありますが、変数の型の変更により、潜在的な問題が発生する可能性があります。注目に値するもう 1 つの問題は変数のスコープであり、これも潜在的な問題を引き起こす可能性があります。
PHP には次の基本変数があります:


コードをコピー コードは次のとおりです:

ブール値、リソース、integer、double、string、array、object


3. 一時変数の使用
一時変数の乱用はプログラムの動作効率の低下につながります。一時変数をいつ使用するかは、次の 2 つの考慮事項に基づいて決定できます。
1. 変数が少なくとも 2 回使用されているかどうか。
2. この変数を使用するとプログラムの可読性が大幅に向上するかどうか。
上記のいずれも満たされない場合、この変数の使用は省略されます。例:

コードをコピー コードは次のとおりです。

$tmp = date ( "F d, h:i a"); /* つまり、1 月 3 日の午後 2 時 30 分 */
を print
?>

に変更する必要があります。 🎜>

コードをコピー コードは次のとおりです。

print date ("F d, h: i a");
?>


別の例:



コードをコピー コードは次のとおりです:


// string reverse_characters(string str)
// 文字列内のすべての文字を反転します。
function reverse_characters ($str)
{
return implode ("" , array_reverse (preg_split("//", $str)));
}

?>あまり読みにくいので、次のように変更できます:


コードをコピー

コードは次のとおりです:

// string reverse_characters(string str)

// 文字列内のすべての文字を反転します。

function reverse_characters ($str)
{
$characters = preg_split ("// ", $str);
$characters = array_reverse ($characters);

return implode ("", $characters);
}

?>


4. クライアントとサーバーのクライアント側コードの分離
PHP プログラムのクライアント側コードとサーバー側コードは、実際には HTML コードと PHP 言語コードを混在させています。このスタイルは、プログラムのメンテナンスと再開発に非常に悪影響を与えるため、大規模なサイトの開発には適していません。一般に、HTML ステートメントと PHP ステートメントを分離するには 2 つの方法があります。
1. 専用の API を作成します。例:

index.php クライアント側



コピーcode

コードは次のとおりです:




<頭>
<タイトル>
















site.lib サーバー側コード

复制代码 代码如下:


< ?php

$dbh = mysql_connect ("localhost", "sh", "pass")
または die (sprintf ("MySQL [%s] に接続できません: %s",
mysql_errno ()、mysql_error ()));
@mysql_select_db ("MainSite")
or die (sprintf ("データベース [%s] を選択できません: %s",
mysql_errno (), mysql_error ()));

$sth = @mysql_query ("SELECT * FROM site", $dbh)
or die (sprintf ("クエリ [%s] を実行できません: %s",
mysql_errno (), mysql_error ()));

$site_info = mysql_fetch_object ($sth);

function print_header ()
{
global $site_info;
$site_info->header; を印刷します。
}

function print_body ()
{
global $site_info;
print nl2br ($site_info->body);
}

function print_links ()
{
global $site_info;

$links =explode("n", $site_info->links);
$names =explode("n", $site_info->link_names);

for ($i = 0; $i < count ($links); $i )
{
print "ttt
$names[$i]
n
n";
}
}
?>


この方法では、プログラムがより丁寧に見え、実行速度も速くなります。 ,上の機能と同様に、次の代コードを使用できます。

%%PAGE_TITLE%%

<ボディ %%BODY_PROPERTIES%%>

%%PAGE_TITLE%%

%%PAGE_LINKS%% %%PAGE_CONTENT%%





は、自動的に生成される内容を置き換え、その後、解析プログラムを使用してモジュール ファイルを分析し、その内容を PHP を使用せずに置き換えます。この方法の欠点は、モジュール ファイルを解釈するため、実行効率が低いことです。

注釈: www.thewebmasters.net の FastTemplate クラスの以上の機能、または Smarty モジュール ドライバを使用する

五、不必要な使用時間の関数
は 1 つの自由ソフトウェアとして、PHP 公開很快、その中の很多関数都已过時、例:



复制代码

代码如下:


while (1):
print "5";
if ($idx == 5):
ブレーク;
endif;

終わりに; も使用できますが、効率は高くなく、後続のバージョンで使用できなくなり、プログラムが実行できなくなる可能性があります。そのため、これらの関数が修正されている場合は、最新の PHP を定期的に検出する必要があります。

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