PHP ノート
- WBOYオリジナル
- 2016-06-13 12:27:39783ブラウズ
<p>
PHP ノート<br></p>
<ol>
<li>
<p><strong>php の基本入門</strong></p>
<ol>
<li>
<p><strong>なぜ php を学ぶ必要があるのか</strong></p> <p>インターネットで情報を調べて、PHPの基本的な知識を学び、PHPのメリットとデメリットについて学びました。 PHP は、汎用のオープンソース スクリプト言語です。この構文は C 言語、Java、Perl の特徴を吸収しており、学習が容易で主に Web 開発の分野に適しています。 PHP の独自の構文には、C、Java、Perl、および PHP 独自の構文が混合されています。 CGI や Perl よりも高速に動的 Web ページを実行できます。他のプログラミング言語と比較して、PHP で作成された動的ページは HTML (Standard Universal Markup Language に基づくアプリケーション) ドキュメントにプログラムを埋め込んで実行するため、HTML タグを完全に生成する CGI よりも実行効率が高く、コンパイルされたコードも実行できます。コンパイルにより暗号化が実現され、コードの実行が最適化され、コードの実行が高速化されます。 </p>
</li>
<li><p><strong>php および html、php 環境を構成します。 </strong></p></li>
</ol>
<ul>
<li>php 構文は html 構文をサポートします。 php で使用されるコード内で完璧なネストされたタグ言語。 PHP は HTML 文書にプログラムを埋め込んで実行するため、HTML タグを完全に生成する CGI に比べて実行効率が非常に高くなります。 <br>
</li>
<li>オンライン チュートリアルに従って、PHP 環境の構成方法を学び、最初の PHP ファイルを正常に実行しました。 </li>
</ul>
<ol><li>
<strong>基本的な php: </strong><br><code>echo</code>、<code>print</code>、<code>strings</code>、<code>arithmetic</code>、<code>variables</code>、<code>semicolons</code>、<code>comments</code>
</li></ol>
<ul>
<li>
<code>echo</code> と <code>print</code> の違いを理解してください。<code>echo</code> はカンマで区切って複数の値を出力できますが、<code>print</code> は 1 つの値のみを出力できます。 <br>
</li>
<li> 文字列型を出力する場合は、<code>echo</code> と <code>print</code> の両方を使用できます。複数の文字列を接続する場合は、英ドット "." で接続できます。 <br>
</li>
<li>
<code>arithmetic</code> は、出力時に 6 を出力する <code>echo 2 * 3;</code> などの算術演算をサポートすることを意味します。 <br>
</li>
<li>
<code>variables</code> の場合、PHP 変数には型がありません。つまり、定義方法は <code>$name = “wsy”;</code> と同様、つまり <code>$</code> シンボルが 1 つだけです。各変数名の前に追加する必要があり、残りは自分で定義した名前です。変数は初めて値を代入してから定義されるため、このように変数を定義する必要はありません。 <code>$name</code><br>
</li>各 php ステートメントはセミコロンで終わる必要があります。これは C/C の <li><br></li> コメントと同じです。コメントも C/C コメントと同じです。 <li> を使用しますが、<code>//</code> を使用することもできます。 <code>/**/</code>
</li>
</ul>
</li>
<li>
<p>php 条件制御<strong></strong></p>
<ol>
<li>
<p>比較記号<strong></strong></p> PHP の比較記号は C/C に似ていますが、さらに大なり (<p>)、未満 (<code>></code>)、以上 (<code><</code>)、以下 (<🎜) に分けられます。 >)、(<code>>=</code>) と等しい、(<code><=</code>) と等しいではない。 <code>==</code><code>!=</code></p></li><li><p> と <strong> と <code>if</code><code>else</code><code>elseif</code></strong>php の </p> ステートメントは C/C と非常によく似ています。 ()内に条件を追加し、<p>または<code>if</code>の簡略化した記述にも対応します。 <code>if(1)</code><code>if(true)</code></p></li><li><p>、<strong><code>switch</code><code>endswitch</code></strong>もphpには存在します。書き方はC/Cと同じです、</p> <p><code>switch</code>PHP では通常の書き方と比較して、中括弧を省略した別の書き方も提供しています。 </p><pre class="brush:php;toolbar:false"><code>switch ($a) { case 1: echo 1; break; default: echo 2;}</code></pre><p></p><pre class="brush:php;toolbar:false"><code>switch ($a) : case 1: echo 1; break; default: echo 2;endswitch;</code></pre></li></ol></li>php 配列<li><p><strong></strong></p><ol>配列の定義<li> <p><strong>PHP は変数の型を自動的に照合するため、PHP 配列も異なる型の変数を同等に扱います。つまり、PHP 配列は任意の型の変数を配列に追加できます。 </strong></p><p>これは、4 つの要素、2 つの文字列型、および 2 つの数値型を含む a という名前の配列を定義します。 <br /><code>$a = array(“Tom”, “Jim”, 1, 2);</code><br /></p></li>配列添字による配列要素 <li>、<p><strong><code>[]</code><code>{}</code>の取得 (C/Cと同様、0から開始) ) 配列の要素にアクセスするには 2 つの方法があります。1 つは </strong> を使用する方法、もう 1 つは </p> を使用する方法です。これら 2 つのメソッドは同じであり、どちらのメソッドを使用しても配列要素にアクセスできます。 <p><code>[]</code><code>{}</code></p><pre class="brush:php;toolbar:false"><code>echo $a[2]; //输出1echo $a{1}; //输出Jim</code></pre></li>配列要素の変更<li><p><strong>php は、</strong> または </p> による配列要素の変更をサポートしています。対応する配列要素にアクセスして、新しい値を割り当てるだけです。 <p><code>[]</code><code>{}</code></p><pre class="brush:php;toolbar:false"><code>$a[1] = “TTT”;echo $a{1}; //输出TTT,因为已经修改了。</code></pre></li>配列要素の削除<li><p><strong>php は、配列内の要素を削除したり、配列全体を削除したりする機能をサポートしています。対応する要素は </strong> を通じて削除できます。 </p><p><code>unset();</code></p><pre class="brush:php;toolbar:false"><code>unset($a[1]); //删除了数组中的第二个元素,现在数组包含Tom,1,2unset($a); //删除了整个数组</code></pre></li></ol></li>php ループ <li><p><strong></strong></p><ol><li> php ループこれは C/C に似ており、<pre class="brush:php;toolbar:false"><code>**`for`循环**</code></pre> 演算子をサポートしていますが、<p> はサポートしていないため、<code>for</code> 以外のループの場合は、<code> </code>;<code> =</code> と記述する必要があります。<pre class="brush:php;toolbar:false"><code>for ($i = 0; $i <= 100; $i = $i + 10) { //……}</code></pre></li><li><pre class="brush:php;toolbar:false"><code>**`foreach`循环**</code></pre><p>当需要循环整个数组时,写<code>for</code>循环可能会过于繁琐,所以php提供了一种特殊的循环方法,即<code>foreach</code>循环。写法如下:</p><pre class="brush:php;toolbar:false"><code>$a = array(“Tom”, “Jim”, 1, 2, 3);foreach ($a as $i) { echo $i;}</code></pre></li></ol><p>这样就可以将php数组中的所有元素都输出了。<br /><code>foreach (数组名 as 变量名)</code>,接下来对于数组中每个元素操作即对用户自己取变量名的变量操作即可,但不支持修改功能,类似与C/C++中的传值与传址的区别。</p><ol><li><pre class="brush:php;toolbar:false"><code>**`while`循环,`endwhile`**</code></pre><p>php中的<code>while</code>循环有2种写法,普通的写法是都所知道的。</p><pre class="brush:php;toolbar:false"><code>while () { //……}</code></pre><p>类似于之前的<code>switch</code>,php中也有另外一种写法。</p><pre class="brush:php;toolbar:false"><code>while (): //……endwhile;</code></pre><p>同<code>if</code>/<code>else</code>一样,<code>while</code>同时也支持这样<code>while(1)</code>或者<code>while(true)</code>的简化写法。</p></li><li><pre class="brush:php;toolbar:false"><code>**`do-while`循环**</code></pre><p>php中的<code>do-while</code>循环与C/C++一样。</p><pre class="brush:php;toolbar:false"><code>do { //……} while ();</code></pre><p><code>do-while</code>也支持这样<code>do-while(1)</code>或者<code>do-while(true)</code>的简化写法。</p></li><li><pre class="brush:php;toolbar:false"><code>**循环嵌套**</code></pre><p>php中支持各种循环的相互嵌套。</p></li></ol></li><li><p><strong>php函数(1)</strong></p><ol><li><p><strong>关于字符串的相关函数</strong></p><pre class="brush:php;toolbar:false"><code>strlen(string)substr(string, start, length)strtoupper(string)strtolower(string)strpos(string, string)</code></pre><p><code>strlen(string)</code>:此函数用于求传入形参字符串<code>string</code> 的长度,返回数字类型即字符串的长度。<br /><code>substr(string, start, length)</code>:此函数用于求字符串<code>string</code>的某个子串。第一个形参为原字符串<code>string</code>。第二个形参<code>start</code>为子串在<code>string</code>中的开始位置,为数字类型变量。第三个形参<code>length</code>为子串的长度。此函数根据传入的形参,返回字符串类型的子串。<br /><code>strtoupper(string)</code>:此函数用于将字符串<code>string</code>全部转换为大写。返回大写的<code>string</code>。<br /><code>strtolower(string)</code>:此函数用于将字符串<code>string</code>全部转换为小写。返回小写的<code>string</code>。<br /><code>strpos(string, string)</code>:此函数用于求在第一个<code>string</code>中第一次出现第二个<code>string</code>的首位置,若从未出现返回<code>false</code>。</p><pre class="brush:php;toolbar:false"><code>strpos("emily", "e"); // 0strpos("emily", "ily"); // 2strpos("emily", "zxc"); // false</code></pre></li><li><pre class="brush:php;toolbar:false"><code>**关于数学的相关函数**</code></pre><pre class="brush:php;toolbar:false"><code>round(number(, n))rand(min, max)</code></pre><p><code>round</code>函数用于对浮点数保留小数。<br /><code>round(number)</code>:这样写,默认对<code>number</code>保留为整数。<br /><code>round(number, n)</code>:这样写,对<code>number</code>保留<code>n</code>位小数。<br /><code>rand(min, max)</code>:此函数用于求给定范围[<code>min</code>, <code>max</code>]中的随机数。</p></li><li><pre class="brush:php;toolbar:false"><code>**关于数组的相关函数** </code></pre><pre class="brush:php;toolbar:false"><code>array_push(array, number/string)count(array)sort(array)rsort(array)join(string,array)</code></pre><p><code>array_push(array, number/string)</code>:此函数用于对数组<code>array</code>尾端增加一个元素,可以为任意类型。<br /><code>count(array)</code>:此函数用于求数组<code>array</code>中元素的个数。<br /><code>sort(array)</code>:此函数用于将数组<code>array</code>中的元素按字典序从小到大排列。<br /><code>rsort(array)</code>:此函数用于将数组<code>array</code>中的元素按字典序从大到小排列。<br /><code>join(string, array)</code>:此函数用于将数组中的元素用<code>string</code>连接起来,并返回连接后的结果。</p><pre class="brush:php;toolbar:false"><code>$array = array(5, 3, 7 ,1);rsort($array);print join(":", $array);//输出 7:5:3:1</code></pre></li></ol></li><li><pre class="brush:php;toolbar:false"><code>**php函数(2)**</code></pre><ol><li><pre class="brush:php;toolbar:false"><code>**自定义函数**</code></pre><p>php中允许用户定义自己所需的不同的函数,但不需要写函数类型。</p><pre class="brush:php;toolbar:false"><code>function Template() { //……}</code></pre><p><code>function</code> 代表定义的是一个函数,<code>Template</code>为函数名,用户可以随意定义,不需要考虑函数的类型。</p></li><li><pre class="brush:php;toolbar:false"><code>**带形参的自定义函数**</code></pre><p>在函数定义时,<code>()</code>之中可以为空,也可以添加形参,即称为带有形参的函数。</p><pre class="brush:php;toolbar:false"><code>function aboutMe($name, $age) { echo "Hello! My name is " . $name . ", and I am " . $age . " years old.";}</code></pre><p>此函数定义了两个形参,分别为<code>$name</code>和<code>$age</code>。调用时,<code>aboutMe("wsy", 22);</code>即可,也可以传入其他变量名。</p></li><li><pre class="brush:php;toolbar:false"><code>**自定义函数的返回值**</code></pre><p>php的函数虽然没有函数类型,但是可以返回任意类型的值。</p><pre class="brush:php;toolbar:false"><code>function returnName() { return "wsy";}</code></pre><p><code>return</code>后可以跟变量也可直接跟常量。</p></li></ol></li><li><pre class="brush:php;toolbar:false"><code>**php对象(1)**</code></pre><ol><li><pre class="brush:php;toolbar:false"><code>**类的定义、对象的定义**</code></pre><p>同C++中类的定义相同,php的类定义如下。</p><pre class="brush:php;toolbar:false"><code>class Dog { public $name; public $numLegs = 4; //可以定义公有成员,可以对其赋值也可以对其不赋值 //……}</code></pre><p>建立一个类的对象。<br /><code>$dog = new Dog();</code><br />调用公有成员。</p><pre class="brush:php;toolbar:false"><code>echo $dog->numLegs;//name因为未赋值,若要输出name的话,则不会输出任何东西。</code></p>
</li>
<li>
<pre class="brush:php;toolbar:false"><code>**构造器的定义及调用**</code></pre>
<p>在类可以用<code>__construct()</code>来定义构造器。</p>
<pre class="brush:php;toolbar:false"><code>class Dog { public $name; public $numLegs = 4; public function __construct($name) { //构造器可以带形参也可以不带形参 $this->name = $name; //若要对类内成员赋值,需用$this->成员名 的形式赋值。 } //……}</code></pre>
<p>构造器在定义对象时自动被调用。</p>
<pre class="brush:php;toolbar:false"><code>$dog = new Dog(“Tom”);echo $dog->name;//输出Tom。</code></pre>
</li>
<li>
<pre class="brush:php;toolbar:false"><code>**方法的定义及调用**在类内可以自定义方法。</code></pre>
<pre class="brush:php;toolbar:false"><code>class Dog { public $name; public $numLegs = 4; public function __construct($name) { $this->name = $name; } public function greet() { //方法可以带形参也可以不带 return “Hello, my name is ” . $name . “.”; //方法可以有返回值也可以没有 } //……}</code></pre>
<p>方法的调用类似公有成员的调用,<code>()</code>不可省略。</p>
<pre class="brush:php;toolbar:false"><code>$dog = new Dog(“Tom”);echo $dog->greet();//输出Hello, my name is Tom.</code></pre>
</li>
</ol>
</li>
<li>
<pre class="brush:php;toolbar:false"><code>**php对象(2)**</code></pre>
<ol>
<li>
<pre class="brush:php;toolbar:false"><code>**类的继承**</code></pre>
<p>php支持类的继承。</p>
<pre class="brush:php;toolbar:false"><code>class Shape {public $hasSides = true;}class Square extends Shape { //Square类继承了Shape类}</code></pre>
<p>通过<code>property_exists()</code>函数可以查看某个类是否包含某个方法或者私有成员。</p>
<pre class="brush:php;toolbar:false"><code>$square = new Square();if (property_exists($square, "hasSides")) { echo "I have sides!";}//有输出,输出I have sides!</code></pre>
<p>php的类继承与C++中的类继承一样,子类会继承父类的所以公有成员和方法。</p>
</li>
<li>
<pre class="brush:php;toolbar:false"><code>**重写父类方法,`final`**</code></pre>
<p>php支持在子类中重写父类中的方法,并且在调用时调用的为子类重写后的方法。</p>
<pre class="brush:php;toolbar:false"><code>class Vehicle { public function honk() { return "HONK HONK!"; }}class Bicycle extends Vehicle { public function honk() { //父类方法的重写 return "Beep beep!"; }}</code></pre>
<p>调用子类方法</p>
<pre class="brush:php;toolbar:false"><code>$bicycle = new Bicycle();echo $bicycle->honk();//将输出Beep beep!</code></pre>
<p>若想要在子类重写后,仍调用的为父类继承来的方法。只需在父类方法前增加<code>final</code>关键字。若将上面父类<code>Vehicle</code>中的<code>honk</code>方法改为如下形式,其他保持不变。</p>
<pre class="brush:php;toolbar:false"><code>final public function honk() { //……}</code></pre>
<p>最终程序将输出<code>HONK HONK!</code>。</p>
</li>
<li>
<pre class="brush:php;toolbar:false"><code>**`const`和`::`**</code></pre>
<p>php类中支持<code>const</code>常量,即定义时就需要赋值,一旦赋值后不允许修改。</p>
<pre class="brush:php;toolbar:false"><code>class Cat { const numLegs = 4; //不需要添加$符号}</code></pre>
<p>对于<code>const</code>常量的访问,不能与之前公有成员的访问方法一样,而应该用<code>::</code>来访问。因为常量是针对每个类而言,所以应采取如下形式访问。</p>
<pre class="brush:php;toolbar:false"><code>echo Cat::numLegs;//输出4</code></pre>
</li>
<li>
<pre class="brush:php;toolbar:false"><code>**`static`**</code></pre>
<p>php类支持静态方法和静态变量,允许用户在不创建对象而可以访问成员和方法。</p>
<pre class="brush:php;toolbar:false"><code>class Person { public static $isAlive = "Yep!" public static function greet() { echo "Hello there!"; }}</code></pre>
<p>调用时,采取如下形式访问。</p>
<pre class="brush:php;toolbar:false"><code>echo Person::$isAlive;//输出Yep!Person::greet();//输出Hello there!</code></pre>
</li>
</ol>
</li>
</ol>
<div class="clear">
</div>
声明:この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。