ひよこメモ

備忘ブログ Ruby, Rails, AWS, html5, css3, javascript, vim,

PHP print_r

print_r("文字列" [,bool 返り値オプション]);

わかりやすい形式で変数の値に関する情報を表示する。
返り値オプションは書いても書かなくても大丈夫。trueなら画面に表示せず変数に格納する。falseなら画面に表示し変数には格納しない。デフォルトはfalse。

$test = print_r("aaa", true);
var_dump($test);
結果
string(3) "aaa"

preg_match

preg_match
正規表現によるマッチング。特定の文字列を含むかチェック。マッチしたら1を返す。マッチしなかったら0を返す。
引数は(パターン, 対象)
if (pregmatch('/ab/', 'abcde')) {
文字列あり
}

if (!pregmatch('/ab/', 'abcde')) {
文字列なし
}

正規表現を使わない場合はstrposかstrstr。
strpos:該当する文字列が無ければfalseを返す。見つかったら位置を数値で返す。
if (strpos('abcde', 'bc') !== false) {
//文字列あり
}

if(strpos('abcde', 'bc') === false) {
//文字列なし
}

strstr

XcodeのSize Inspector設定

View

Show
Frame Rectangle(フレーム矩形):影を含むオブジェクトの矩形サイズが「Width」と「Height」に表示される。ドロップシャドウ込み。
Alignment Rectangle(比率矩形):オブジェクト自体の矩形サイズが「Width」と「Height」に表示される。ドロップシャドウ抜き。
矩形・・・正方形や長方形
UIObjectに影を持つものはほとんど無いのでデフォルトのFrame Rectangleで問題ない。
X:左端を支点とした左右の位置。
Y:上部を支点とした上下の位置。
Width:オブジェクトの幅。
Height:オブジェクトの高さ。

Arrange Position View

Center Horizontally In Container:オブジェクトの位置を左右の中心に置く。
Center Vertically In Container:オブジェクトの位置を上下の中心に置く。
Fill Container Horizontally:オブジェクトを左右いっぱいに引き延ばす。
Fill Container Vertically:オブジェクトを上下いっぱいに引き延ばす。

Autoresizing

Layout Margins

Default:
Explicit(明示的な):

Preserve Superview Margins(Superviewのマージンを保持):
Superviewは外枠いっぱいを囲ったView。
Leading Space to Suverview:Superviewから右に伸びるConstraint
Trailling Space to:Superview:Superviewから左に伸びるConstraint
SubviewはSuperviewの中のオブジェクト。
Marginsはオブジェクトを配置する時に使う幅。
Follow Readable Width:

Constraint(制約):右下にあるAdd New Constraintから追加可能。
Constraintを追加すると、Size Inspectorの様子が変わる。

XcodeのPlaygroundが便利

Xcodeを開いて
FIle > New > Playground

コンパイルせず即座に確認できる。
こちらのブログを参考にテスト
Swift実践入門 〜 今からはじめるiOSアプリ開発! 基本文法を押さえて、簡単な電卓を作ってみよう - エンジニアHub|若手Webエンジニアのキャリアを考える!

class MyApp {
    //親クラス
    class Shape {
        var name: String
        
        init(name: String) {
            self.name = name
        }
    }
    
    //子クラス 四角形
    class Rectangle: Shape {
        var width: Double
        var height: Double
    
        init(name: String, width: Double, height: Double) {
            self.width = width
            self.height = height
            super.init(name: name)
        }

        func area() -> Double {
            return width * height
        }
    }
    
    //子クラス 三角形
    class Triangle: Shape {
        var bottom: Double
        var height: Double
        
        init(name: String, bottom: Double, height: Double) {
            self.bottom = bottom
            self.height = height
            super.init(name: name)
        }
        
        func area() -> Double {
            return bottom * height / 2.0
        }
    }
}

var square = MyApp.Rectangle(name: "四角形!", width: 15, height: 20)
print(square.name)
print(square.area())