コンストラクタとstaticについていまいち理解できません。
下記のソースでtest1を実行した場合にもtest2と同様の結果を表示させるにはどうしたらよいでしょうか。
解説付きでご教示いただけると幸いです。
php
1<?php 2 3class Test 4{ 5 public function __construct() { 6 echo 'a'; 7 } 8 9 static public function test() 10 { 11 echo 'b'; 12 } 13} 14 15//test1 =>b 16Test::test(); 17 18//test2 =>ab 19$x = new Test; 20echo $x->test();
皆様ご回答いただきありがとうございます。
よくわかりました。
ちなみに下記のような仕組みをあえてオブジェクト指向で書く場合、
staticの使い方として正しいでしょうか?
php
1<?php 2 3class Input 4{ 5 public static function safe($data) { 6 $data = htmlspecialchars($data, ENT_QUOTES); 7 return $data; 8 } 9 10 public static function get($input) 11 { 12 if(isset($_GET[$input])){ 13 return Input::safe($_GET[$input]); 14 } 15 return null; 16 } 17 18 public static function post($input) 19 { 20 if(isset($_POST[$input])){ 21 return Input::safe($_POST[$input]); 22 } 23 return null; 24 } 25} 26 27//test.php?txt=<script> 28echo Input::get('txt'); //<script>gt; 29
回答2件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。