ยินดีต้อนรับคุณ, บุคคลทั่วไป กรุณา เข้าสู่ระบบ หรือ ลงทะเบียน

เข้าสู่ระบบด้วยชื่อผู้ใช้ รหัสผ่าน และระยะเวลาในเซสชั่น

หน้า: [1]   ลงล่าง
พิมพ์
ผู้เขียน หัวข้อ: หัด OOP งง เรื่อง $  (อ่าน 1023 ครั้ง)
0 สมาชิก และ 1 บุคคลทั่วไป กำลังดูหัวข้อนี้
affsom
สมุนแก๊งเสียว
*

พลังน้ำใจ: 24
ออฟไลน์ ออฟไลน์

กระทู้: 501



ดูรายละเอียด
« เมื่อ: 09 กุมภาพันธ์ 2017, 02:11:18 »

=======================================================
<?php
class FileFinder {
    private $onFound; //หมายถึงอะไร

    private function __construct($path, $onFound, $maxDepth) { //$ เหมือนมัน วนๆ คือค่าอะไร เคยเขียนแต่ $path = brabra ;
// ค่า $path, $onFound, $maxDepth คืออะไร เอามาจากใหน
        
        $this->onFound = $onFound;
      
        $this->iterate($path, $maxDepth);
    }

    private function iterate($path, $maxDepth) {
        $d = opendir($path);
        while ($e = readdir($d)) {
          
            if ($e == '.' || $e == '..') { continue; }
            $absPath = "$path/$e";
            if (is_dir($absPath)) {
                
                if ($maxDepth != 0) {
                  
                    $this->iterate($absPath, $maxDepth - 1);
                }
            } else {
              
                call_user_func_array($this->onFound, array($absPath));
            }
        }
        closedir($d);
    }


    public static function find($path, $onFound, $maxDepth = 0) {
        return new self($path, $onFound, $maxDepth);
    }
}


$count = $bytes = 0;
FileFinder::find('.', function($file) use (&$count, &$bytes) {
  
    ++$count;
    $bytes += filesize($file);
}, 1);

echo "Nr files: $count; bytes used: $bytes\n";
===================================================


สีแดงๆ มันมายังไง การใช้งาน ใช้ยังไง

ส่วนใหญ่จะศึกษาOOPแบบหาโค๊ดมาแกะเอา มันก็ใช้งานได้นะครับ แต่บางทีไม่รู้ว่ามันคืออะไร ใช้ได้แต่ไม่รู้ความหมายทั้งหมด

 wanwan023  ทดลองแบบง่ายๆ จากข้างล่าง แต่ไม่เข้าใจครับ

==============================
<?php 
class Mainclass {
   public function __construct($text){
      $this->hello($text);
   }
   
   public function hello($text){
      echo $text;
   }

}
$alien = new Mainclass("test Echo");
?>

$text มันคืออะไร สัมพันกับส่วนอื่นใน Class ยังไง

พอรันออกมาแล้ว ทำไมมัน echo = test Echo
=============================
« แก้ไขครั้งสุดท้าย: 09 กุมภาพันธ์ 2017, 02:20:23 โดย affsom » บันทึกการเข้า
vii
Verified Seller
สมุนแก๊งเสียว
*

พลังน้ำใจ: 132
ออฟไลน์ ออฟไลน์

กระทู้: 946



ดูรายละเอียด เว็บไซต์
« ตอบ #1 เมื่อ: 09 กุมภาพันธ์ 2017, 02:18:19 »

ผมว่าเริ่มต้นหัดเรียนรู้ตั้งแต่ง่ายที่สุดเลยดีกว่ามั้ง อย่าเพิ่งไปหัดโดยการแกะดูโค้ดคนอื่นเลย ทำความเข้าใจแล้วทดลองเขียนไปรันไปให้มันรู้ว่าอะไรคืออะไร อะไรทำงานยังไงก่อนดีกว่า

ตัวอย่างบทเรียน

ภาษาไทย
http://teerapuch.com/2014/codi...84%E0%B8%A7%E0%B8%B2%E0%B8%A1/
http://www.swift-tutor.com/%E0...0%B8%95%E0%B8%A5%E0%B9%8C-oop/
http://www.thaicreate.com/comm...p-oop-tutorial-vdo-online.html

ภาษาอังกฤษ
https://code.tutsplus.com/tuto...d-php-for-beginners--net-12762



public คือคลาสข้างนอกหรือตัวที่เรียกคลาสสามารถเรียกใช้ได้
private คือใช้ได้เฉพาะข้างใน class นั้นๆ
protected คือใช้ได้เฉพาะข้างใน class นั้นและคลาสที่ extends คือทำต่อขยายออกมาเพื่อแก้ไขคลาสเดิมที่มีอยู่หรือใส่ฟังก์ชั่นเพิ่มเติม

method __construct() จะทำงานอัตโนมัติเมื่อคลาสนั้นถูกเรียก โดยค่า arguments หรือ parameters ที่กำหนดจะทำให้ต้องกรอกหรือไม่ก็ได้ เช่น
โค๊ด:
class Human
{
    public function __construct()
    {

    }
}

// ก็สามารถเรียกใช้
$Human = new Human();// ได้เลย

แต่ถ้าแบบนี้..

โค๊ด:
class Human
{
    public function __construct($name)
    {

    }
}

// ก็ต้องระบุค่าใน argument คือ $name เพราะ $name ไม่ได้กำหนด default เอาไว้
// ต้องเรียกแบบนี้
$Human = new Human('vee');

และถ้าแบบนี้..

โค๊ด:
class Human
{
    public function __construct($name = 'John Wick')
    {

    }
}

// ก็ไม่ต้องระบุค่าใน argument คือ $name ก็ได้เพราะ $name ได้กำหนด default เอาไว้
// แต่ถ้าจะระบุเหมือนข้างบนก็ได้ มันก็จะไปทับค่า default
// ตัวอย่างการเรียกใช้
$Human = new Human();

อื่นๆก็ลองค่อยๆอ่านเอาจากลิ้งค์ที่ให้ไป มีทั้งแบบสอนทีละขั้นอย่างนี้และสอนรวดเดียวเลย แต่จะเข้าใจยากหน่อยสำหรับผู้ไม่เคยทำเลย แต่เดี๋ยวก็เก่งเอง.
« แก้ไขครั้งสุดท้าย: 09 กุมภาพันธ์ 2017, 02:34:51 โดย vii » บันทึกการเข้า

affsom
สมุนแก๊งเสียว
*

พลังน้ำใจ: 24
ออฟไลน์ ออฟไลน์

กระทู้: 501



ดูรายละเอียด
« ตอบ #2 เมื่อ: 09 กุมภาพันธ์ 2017, 02:33:08 »

ผมว่าเริ่มต้นหัดเรียนรู้ตั้งแต่ง่ายที่สุดเลยดีกว่ามั้ง อย่าเพิ่งไปหัดโดยการแกะดูโค้ดคนอื่นเลย ทำความเข้าใจแล้วทดลองเขียนไปรันไปให้มันรู้ว่าอะไรคืออะไร อะไรทำงานยังไงก่อนดีกว่า

ตัวอย่างบทเรียน

ภาษาไทย
http://teerapuch.com/2014/codi...84%E0%B8%A7%E0%B8%B2%E0%B8%A1/
http://www.swift-tutor.com/%E0...0%B8%95%E0%B8%A5%E0%B9%8C-oop/
http://www.thaicreate.com/comm...p-oop-tutorial-vdo-online.html

ภาษาอังกฤษ
https://code.tutsplus.com/tuto...d-php-for-beginners--net-12762


+++ สำหรับ Link ที่จริงก็ดูหมดแล้ว แต่เหมือนมันไม่ค่อยดึงดูดใจ หลับซะก่อนหลายทีแล้ว แต่ถ้าเอาโค๊ดคนอื่นมาลองไล่แกะนี่มันณู้สึกมันมือกว่า แต่ว่าไปได้ช้ามากๆ
บันทึกการเข้า
vii
Verified Seller
สมุนแก๊งเสียว
*

พลังน้ำใจ: 132
ออฟไลน์ ออฟไลน์

กระทู้: 946



ดูรายละเอียด เว็บไซต์
« ตอบ #3 เมื่อ: 09 กุมภาพันธ์ 2017, 02:37:28 »

ผมว่าเริ่มต้นหัดเรียนรู้ตั้งแต่ง่ายที่สุดเลยดีกว่ามั้ง อย่าเพิ่งไปหัดโดยการแกะดูโค้ดคนอื่นเลย ทำความเข้าใจแล้วทดลองเขียนไปรันไปให้มันรู้ว่าอะไรคืออะไร อะไรทำงานยังไงก่อนดีกว่า

ตัวอย่างบทเรียน

ภาษาไทย
http://teerapuch.com/2014/codi...84%E0%B8%A7%E0%B8%B2%E0%B8%A1/
http://www.swift-tutor.com/%E0...0%B8%95%E0%B8%A5%E0%B9%8C-oop/
http://www.thaicreate.com/comm...p-oop-tutorial-vdo-online.html

ภาษาอังกฤษ
https://code.tutsplus.com/tuto...d-php-for-beginners--net-12762


+++ สำหรับ Link ที่จริงก็ดูหมดแล้ว แต่เหมือนมันไม่ค่อยดึงดูดใจ หลับซะก่อนหลายทีแล้ว แต่ถ้าเอาโค๊ดคนอื่นมาลองไล่แกะนี่มันณู้สึกมันมือกว่า แต่ว่าไปได้ช้ามากๆ

คุณจะทำข้ามขั้นอย่างนั้นมันต้องพอมีพื้นฐานก่อนบ้างถึงจะแกะของเขาได้ ไม่งั้นเสียเวลามากกว่าอีก
นั่งอดทนอ่านไปทำไปวันนึงก็เข้าใจได้เยอะมากแล้ว
นั่งแกะของเขาเสียก่อนวันนึงก็ยังเข้าใจได้ไม่มากเท่าไหร่หรอก ยิ่งไปเจอคลาสที่ซับซ้อนหรือใช้ลูกเล่น PHP รุ่นใหม่ๆจ๋ามาเลยนี่จะยิ่งงงทวีมหาศาล
บันทึกการเข้า

snohomish
คนรักเสียว
*

พลังน้ำใจ: 7
ออฟไลน์ ออฟไลน์

กระทู้: 111



ดูรายละเอียด เว็บไซต์
« ตอบ #4 เมื่อ: 09 กุมภาพันธ์ 2017, 15:26:14 »

ผมว่าเริ่มต้นหัดเรียนรู้ตั้งแต่ง่ายที่สุดเลยดีกว่ามั้ง อย่าเพิ่งไปหัดโดยการแกะดูโค้ดคนอื่นเลย ทำความเข้าใจแล้วทดลองเขียนไปรันไปให้มันรู้ว่าอะไรคืออะไร อะไรทำงานยังไงก่อนดีกว่า

ตัวอย่างบทเรียน

ภาษาไทย
http://teerapuch.com/2014/codi...84%E0%B8%A7%E0%B8%B2%E0%B8%A1/
http://www.swift-tutor.com/%E0...0%B8%95%E0%B8%A5%E0%B9%8C-oop/
http://www.thaicreate.com/comm...p-oop-tutorial-vdo-online.html

ภาษาอังกฤษ
https://code.tutsplus.com/tuto...d-php-for-beginners--net-12762


+++ สำหรับ Link ที่จริงก็ดูหมดแล้ว แต่เหมือนมันไม่ค่อยดึงดูดใจ หลับซะก่อนหลายทีแล้ว แต่ถ้าเอาโค๊ดคนอื่นมาลองไล่แกะนี่มันณู้สึกมันมือกว่า แต่ว่าไปได้ช้ามากๆ

คุณจะทำข้ามขั้นอย่างนั้นมันต้องพอมีพื้นฐานก่อนบ้างถึงจะแกะของเขาได้ ไม่งั้นเสียเวลามากกว่าอีก
นั่งอดทนอ่านไปทำไปวันนึงก็เข้าใจได้เยอะมากแล้ว
นั่งแกะของเขาเสียก่อนวันนึงก็ยังเข้าใจได้ไม่มากเท่าไหร่หรอก ยิ่งไปเจอคลาสที่ซับซ้อนหรือใช้ลูกเล่น PHP รุ่นใหม่ๆจ๋ามาเลยนี่จะยิ่งงงทวีมหาศาล


ผมเห็นด้วยครับ พื้นฐานต้องมาก่อน
บันทึกการเข้า
ten1312
หัวหน้าแก๊งเสียว
*

พลังน้ำใจ: 67
ออฟไลน์ ออฟไลน์

กระทู้: 1,486



ดูรายละเอียด
« ตอบ #5 เมื่อ: 09 กุมภาพันธ์ 2017, 15:29:11 »

มันเป็นเมธอดที่เวลาเรียกใช้ต้องส่งค่าเข้าไปด้วย
บันทึกการเข้า

บันทึกการเรียนเขียน Program
Java :2 พย. 2559 - 19 พย. 2559 หยุดไว้ก่อน
PHP SQL HTML CSS Bootstrap : 25 พย. 2559 - ปัจจุบัน
Javascript jQuery Ajax Angular JS : เรียนผ่านๆยังไม่จริงจัง

นานาเกษตร
LoveRomyui88io
หัวหน้าแก๊งเสียว
*

พลังน้ำใจ: 28
ออฟไลน์ ออฟไลน์

กระทู้: 1,682



ดูรายละเอียด
« ตอบ #6 เมื่อ: 09 กุมภาพันธ์ 2017, 15:43:22 »

แวะมาเก็บข้อมูล ขอบคุณมากๆ ครับ
บันทึกการเข้า

ห้ามใส่ลิงค์พนันครับ ทำอีกลบแอคเค้านะครับ
markhacd
สมุนแก๊งเสียว
*

พลังน้ำใจ: 14
ออฟไลน์ ออฟไลน์

กระทู้: 589



ดูรายละเอียด เว็บไซต์
« ตอบ #7 เมื่อ: 09 กุมภาพันธ์ 2017, 16:58:47 »

อ่านและงงแทน Lips Sealed
บันทึกการเข้า

หากคุณกำลังมองหาเครื่องสแกนลายนิ้วมือ / เครื่องสแกนใบหน้า / สแกนนิ้ว / สแกนนิ้วมือ แนะนำบริษัทที่จำหน่ายสินค้าคุณภาพที่ www.สแกนนิ้ว.com
thinktogether
ก๊วนเสียว
*

พลังน้ำใจ: 10
ออฟไลน์ ออฟไลน์

กระทู้: 407



ดูรายละเอียด
« ตอบ #8 เมื่อ: 09 กุมภาพันธ์ 2017, 19:02:14 »

แดงๆ ก็แค่กล่องใบนึงไว้แทนตัวตนอะไรสักอย่าง อย่าคิดมาก
บันทึกการเข้า

ช่างอเมริกาบางที่ชั่วโมงละ 100 ดอล

ถ้าเราอยากรวยต้องได้วันละ 1000 ดอล
affsom
สมุนแก๊งเสียว
*

พลังน้ำใจ: 24
ออฟไลน์ ออฟไลน์

กระทู้: 501



ดูรายละเอียด
« ตอบ #9 เมื่อ: 09 กุมภาพันธ์ 2017, 19:57:51 »

ผมว่าเริ่มต้นหัดเรียนรู้ตั้งแต่ง่ายที่สุดเลยดีกว่ามั้ง อย่าเพิ่งไปหัดโดยการแกะดูโค้ดคนอื่นเลย ทำความเข้าใจแล้วทดลองเขียนไปรันไปให้มันรู้ว่าอะไรคืออะไร อะไรทำงานยังไงก่อนดีกว่า

ตัวอย่างบทเรียน

ภาษาไทย
http://teerapuch.com/2014/codi...84%E0%B8%A7%E0%B8%B2%E0%B8%A1/
http://www.swift-tutor.com/%E0...0%B8%95%E0%B8%A5%E0%B9%8C-oop/
http://www.thaicreate.com/comm...p-oop-tutorial-vdo-online.html

ภาษาอังกฤษ
https://code.tutsplus.com/tuto...d-php-for-beginners--net-12762


+++ สำหรับ Link ที่จริงก็ดูหมดแล้ว แต่เหมือนมันไม่ค่อยดึงดูดใจ หลับซะก่อนหลายทีแล้ว แต่ถ้าเอาโค๊ดคนอื่นมาลองไล่แกะนี่มันณู้สึกมันมือกว่า แต่ว่าไปได้ช้ามากๆ

คุณจะทำข้ามขั้นอย่างนั้นมันต้องพอมีพื้นฐานก่อนบ้างถึงจะแกะของเขาได้ ไม่งั้นเสียเวลามากกว่าอีก
นั่งอดทนอ่านไปทำไปวันนึงก็เข้าใจได้เยอะมากแล้ว
นั่งแกะของเขาเสียก่อนวันนึงก็ยังเข้าใจได้ไม่มากเท่าไหร่หรอก ยิ่งไปเจอคลาสที่ซับซ้อนหรือใช้ลูกเล่น PHP รุ่นใหม่ๆจ๋ามาเลยนี่จะยิ่งงงทวีมหาศาล


+++

คงต้องศึกษาใหม่ให้เป็นระบบ ถึงจะทำได้ แต่หาความหมายที่แท้จริงไม่เจอ เหมือน 0หาร0 ที่ได้คำตอบแต่มันไม่ใช่คำตอบ
โค๊ด:
http://kondontea.orgfree.com
wanwan017 wanwan017
« แก้ไขครั้งสุดท้าย: 09 กุมภาพันธ์ 2017, 20:01:17 โดย affsom » บันทึกการเข้า
ทำมาหากิน
Newbie
*

พลังน้ำใจ: 0
ออฟไลน์ ออฟไลน์

กระทู้: 29



ดูรายละเอียด
« ตอบ #10 เมื่อ: 24 กุมภาพันธ์ 2017, 21:37:23 »

__construct เป็นเมจิคอะครับ
จะถูกเรียกตอนเราสร้าง Obj จาก class

 wanwan013
 wanwan003
บันทึกการเข้า

น้ำเมลอนปั่นกินแล้วสดชื่น ไปลองทานกันนะครับ
-------------------------------------
หน้า: [1]   ขึ้นบน
พิมพ์