<?php
namespace App¥Http¥Controllers;
use Illuminate¥Http¥Request;
class NekoController extends Controller
{
public function index(){
require_once $_SERVER['DOCUMENT_ROOT'] . '¥other¥test¥Animal.php';
// $animal = new Animal(); // × →従来の方法でインスタンス化しようとするとエラー → 'App¥Http¥Controllers¥Animal' not found
$animal = new ¥Animal(); // 〇 → 「¥」(バックスペース)を付加するとエラーにならない。
// ルートパスを取得する
$root = $_SERVER['DOCUMENT_ROOT'];
$root_last_str = mb_substr($root, -1);
if($root_last_str == '/' || $root_last_str == '\\'){
$root = mb_substr($root,0,mb_strlen($root)-1);
}
$animal = new Animal();
echo property_exists($animal, 'name'); // → 1
echo property_exists($animal, 'age');// → 1
echo property_exists($animal, 'power');// → 1
echo property_exists($animal, 'bark');// → 空
echo property_exists($animal, 'dummy');// → 空
class Animal{
public $name = 'Cat';
protected $age = 99;
private $power = 99;
public function bark(){
}
}
アノテーション | 説明 |
---|---|
TODO | あとでやります。 |
FIXME | 不具合があります。あとで修正してください。 |
HACK | 汚いソースコードなのでリファクタリングしてください。 |
XXX | 危険な個所です。原因不明ですが動いてはいます。 |
REVIEW | 見直しが必要かもしません。レビューが必要です。 |
OPTIMIZE | 最適化:無駄が多いので最適化がしてください。 |
CHANGED | 変更:コードを変更しました。 |
NOTE | 備考:長めの詳細情報を書きます。 |
WARNING | 注意してください。 |
QUESTION | 質問? |
TEMP | 一時的 |
$neko = Neko::factory();
class Neko{
public static function factory(){
$name = self::getDefName();
return new static($name);
}
public static function getDefName(){
return 'タマ';
}
public function __construct($name){
echo $name;
}
}
<table class="tbl2"><tbody>
<?php
$list = [1, 99, 0.1, 'あ', '赤犬', true, 0, '', null, false];
foreach($list as $val){
$flg = !!$val; // falseかtrueに変換する
if($flg === false) $flg = 'false';
if($flg === true) $flg = 'true';
echo "<tr><td>{$val}</td><td>{$flg}</td></tr>";
}
?>
</tbody></table>
出力
1 | true |
99 | true |
0.1 | true |
あ | true |
赤犬 | true |
1 | true |
0 | false |
false | |
false | |
false |
<?php
$data = ['neko'=>'猫'];
$neko = $data['neko'] ?? '犬';
$dog = $data['dog'] ?? '犬';
echo $neko;
echo $dog;
?>
出力
猫犬
注意
あれこれコマンドを試したので確定した方法ではないが、 おおよそ以下のような流れでGDをインストール。$winpty docker exec -it test_php_1 bash
#apt-get update && apt-get install -y libmagick++-dev \ libfreetype6-dev \ libjpeg62-turbo-dev \ libpng12-dev libmagickwand-dev \ libpq-dev \ libwebp-dev \ libxpm-dev && docker-php-ext-configure gd \ --with-freetype \ --with-jpeg \ --with-webp \ --with-xpm \ && docker-php-ext-install -j$(nproc) gd