diff --git a/src/pages/tips/object-oriented.mdx b/src/pages/tips/object-oriented.mdx index 55b13f7..e05071e 100644 --- a/src/pages/tips/object-oriented.mdx +++ b/src/pages/tips/object-oriented.mdx @@ -1219,282 +1219,3 @@ $user = $formField->toUser(); $user->save(); ``` - ---- - -```c -#include - -typedef char* str; - -struct User { - str name; - int age; -}; - -int main() { - User me = { - .name = "Alice", - .age = 30 - }; - - printf("name: %s\n", me.name); - // name: Alice - - printf("age: %d\n", me.age); - // age: 30 - - return 0; -} -``` - -```php -name = "Alice"; -$user->age = 30; - -echo $user->name . PHP_EOL; -// Alice - -echo $user->age . PHP_EOL; -// 30 -``` - -```php -name; - } -} - -$user = new User(); - -$user->name = "Alice"; -$user->age = 30; - -echo $user->name . PHP_EOL; -echo $user->getName() . PHP_EOL; -// Alice - -echo $user->age . PHP_EOL; -// 30 -``` - -```php -name = $name; - } - - public function getName() { - return $this->name; - } -} - -$user = new User(); - -$user->name = 9817298471982; // 文字じゃねぇ -if (!is_string($user->name)) { - throw new Exception("name must be a string"); -} - -$user->setName("Alice"); -// ok - -$user->setName(123); -// Exception: name must be a string - -$user->age = 30; - -echo $user->name . PHP_EOL; -echo $user->getName() . PHP_EOL; -// Alice - -echo $user->age . PHP_EOL; -// 30 -``` - -```php -name = $name; - } - - public function getName() { - return $this->name; - } -} - -$user = new User(); - -$user->name = 9817298471982; -if (!is_string($user->name)) { - throw new Exception("name must be a string"); -} - -$user->setName("Alice"); -// ok - -$user->setName(123); -// Exception: name must be a string - -$user->age = 30; - -echo $user->name . PHP_EOL; -echo $user->getName() . PHP_EOL; -// Alice - -echo $user->age . PHP_EOL; -// 30 -``` - -constructor コンストラクタ -static - -```php -name = $name; - $this->age = 0; - } - - public static function findUser($id) { - - // $name を使ってDBから取ってくる - - $data = [ - "name" => "bob", - "age" => 35, - ]; - - $instance = new User($data["name"]); - $instance->age = $data["age"]; - - return $instance; - } - - public function setName($name) { - - if (!is_string($name)) { - throw new Exception("name must be a string"); - } - - $this->name = $name; - } - - public function getName() { - return $this->name; - } -} - -$user = new User("Alice"); - -$bob = User::findUser(1); - -$user->name = 9817298471982; -if (!is_string($user->name)) { - throw new Exception("name must be a string"); -} - -$user->setName("Alice"); -// ok - -$user->setName(123); -// Exception: name must be a string - -$user->age = 30; - -echo $user->name . PHP_EOL; -echo $user->getName() . PHP_EOL; -// Alice - -echo $user->age . PHP_EOL; -// 30 -``` - -```php -name = $name; - } - - public function setName($name) { - - if (!is_string($name)) { - throw new Exception("name must be a string"); - } - - $this->name = $name; - } - - public function getName() { - return $this->name; - } -} - -$user1 = new User("Alice"); -// 私は Alice です - - - -class ParttimeUser extends User { - public function __construct($name) { - echo "吾輩は {$name} です"; - $this->name = $name; - } -} - -$user2 = new ParttimeUser("Bob"); -// 吾輩は Bob です - -$user2->setName("George"); -``` - -スマホでボリュームを上げ下げしたいとき、ボタンを押させる。 -中身に触れさせて、この端子をさわってね みたいなことはさせない。