2012年2月4日 星期六

PHP-函數.類別跟物件的筆記

<!--建立具兩個參數的函數,可做加減乘除,並顯示出來-->
<?php
function add($x,$y)
{
        return $x+$y;
}
function substract($x,$y){
        return $x-$y;
}
function doul($x,$y){
        return $x*$y;
}
function addition($x,$y){
        return $x/$y;
}
echo "10+2=".add(10,2)."<br/>";
echo "10-2=".substract(10,2)."<br/>";
echo "10*2=".doul(10,2)."<br/>";
echo "10/2=".addition(10,2)."<br/>";
?>
return是用來回傳一個值,如果沒有要回傳值就不用return
函數命名的原則:

(1)不分大小寫
(2)函數裡還可以用來包含其他函數或是類別
(3)PHP裡不可重新定義同樣名子的函數
不一定要在呼叫函數之前就建立函數。


傳值(call by value)跟傳址(call by reference): 就是指定變數的傳遞方式。
傳值格式:

 函數名稱($參數,...);
傳址格式:
函數名稱(&$參數,...)


PHP5.0開始建構元統一寫成 _ _construct();
<!--試做一類別來計算四方型的面積和週長,長=10cm,寬=5cm(網路上看到的題目)-->
<?php
class Count{
      public $x;
      public $y;
      public function area(){
             return $this->x*$this->y;
      }
      public function alllong(){
             return $this->x*2+$this->y*2;
      }
     
}
$square=new Count();
$square->x=10;
$square->y=15;
echo "面積是:".$square->area()."<br/>";
echo "周長是:".$square->alllong();
?>



public $x; 相當於 var $x;
$this和->是指物件本身,->用來存取物件的成員。
::這個運算子提供了一個功能就是不用建立物件。

<?php
class myclass{
        public function add($x=1,$y=2){echo $x+$y;}
}
myclass::add();
?>


在類別裡面可以定義常數,但是在類別裡定義的話呢。必須將常數關鍵字改成const
如果要存取類別裡面的常數的話,也是可以不用建立物件,改用::存取。
<?php
class MyWeight{
        const Weight=48;
        function display(){
                echo MyWeight::Weight;
        }
}
MyWeight::display();
?>


<!--定義一個room的類別,room類別有4個屬性,分別是roomNum(房號),roomSize(),roomPeople(幾人),roomMonth(),
建構函式有4個參數為num.size,people,month,來設定四個屬性的初始值,
建立四個方法 roomNum().roomSize(),roomPeople(),roomMonth();
最後顯示 某某某住1314號房,房間約5坪大,1人住,住了2個月
-->
<?php
class room{
public $roomNum;
public $roomSize;
public $roomPeople;
public $roomMonth;
function __construct($num,$size,$people,$month){
        $this->roomNum=$num;
        $this->roomSize=$size;
        $this->roomPeople=$people;
        $this->roomMonth=$month;
}
function roomNum(){
        return $this->roomNum;
}
function roomSize(){
        return $this->roomSize;
}
function roomPeople(){
        return $this->roomPeople;
}
function roomMonth(){
        return $this->roomMonth;
}
}
$obj=new room(1314,5,1,2);
echo "某某某住在".$obj->roomNum()."號房,房間約".$obj->roomSize()."坪大,".$obj->roomPeople()."人住,住了".$obj->roomMonth()."個月";
?>


<!--最後結果:某某某住在1314號房,房間約5坪大,1人住,住了2個月-->



另外這裡有費式數列寫法: 

http://blog.qoding.us/2012/01/php-fibonacci-sequence/

2 則留言:

若你看的文章,時間太久遠的問題就別問了,因為我應該也忘了... XD

Vue multiselect set autofocus and tinymce set autofocus

要在畫面一進來 focus multiselect 的方式: 參考: https://jsfiddle.net/shentao/mnphdt2g/ 主要就是在 multiselect 的 tag 加上 ref (例如: my_multiselect), 另外在 mounted...